TimeFeatures 2.1.1__tar.gz → 2.2.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. {timefeatures-2.1.1/TimeFeatures.egg-info → timefeatures-2.2.0}/PKG-INFO +1 -1
  2. {timefeatures-2.1.1 → timefeatures-2.2.0/TimeFeatures.egg-info}/PKG-INFO +1 -1
  3. {timefeatures-2.1.1 → timefeatures-2.2.0}/docs/changes.rst +10 -0
  4. timefeatures-2.2.0/imgs/widgets/owloadfromdb.png +0 -0
  5. timefeatures-2.2.0/imgs/widgets/owsavetodb.png +0 -0
  6. {timefeatures-2.1.1 → timefeatures-2.2.0}/timefeatures/__version__.py +1 -1
  7. timefeatures-2.2.0/timefeatures/help_html/_images/owloadfromdb.png +0 -0
  8. timefeatures-2.2.0/timefeatures/help_html/_images/owsavetodb.png +0 -0
  9. {timefeatures-2.1.1 → timefeatures-2.2.0}/timefeatures/help_html/_sources/changes.rst.txt +10 -0
  10. {timefeatures-2.1.1 → timefeatures-2.2.0}/timefeatures/help_html/_static/documentation_options.js +1 -1
  11. {timefeatures-2.1.1 → timefeatures-2.2.0}/timefeatures/help_html/changes.html +12 -2
  12. {timefeatures-2.1.1 → timefeatures-2.2.0}/timefeatures/help_html/genindex.html +1 -1
  13. {timefeatures-2.1.1 → timefeatures-2.2.0}/timefeatures/help_html/index.html +1 -1
  14. {timefeatures-2.1.1 → timefeatures-2.2.0}/timefeatures/help_html/installation.html +1 -1
  15. timefeatures-2.2.0/timefeatures/help_html/objects.inv +0 -0
  16. {timefeatures-2.1.1 → timefeatures-2.2.0}/timefeatures/help_html/search.html +1 -1
  17. timefeatures-2.2.0/timefeatures/help_html/searchindex.js +1 -0
  18. {timefeatures-2.1.1 → timefeatures-2.2.0}/timefeatures/help_html/widgets/load-from-db.html +1 -1
  19. {timefeatures-2.1.1 → timefeatures-2.2.0}/timefeatures/help_html/widgets/save-to-db.html +1 -1
  20. {timefeatures-2.1.1 → timefeatures-2.2.0}/timefeatures/help_html/widgets/time-feature-constructor.html +1 -1
  21. {timefeatures-2.1.1 → timefeatures-2.2.0}/timefeatures/help_html/widgets/variable-dependency-graph.html +1 -1
  22. {timefeatures-2.1.1 → timefeatures-2.2.0}/timefeatures/widgets/owloadfromdb.py +75 -8
  23. {timefeatures-2.1.1 → timefeatures-2.2.0}/timefeatures/widgets/owsavetodb.py +21 -0
  24. timefeatures-2.1.1/imgs/widgets/owloadfromdb.png +0 -0
  25. timefeatures-2.1.1/imgs/widgets/owsavetodb.png +0 -0
  26. timefeatures-2.1.1/timefeatures/help_html/_images/owloadfromdb.png +0 -0
  27. timefeatures-2.1.1/timefeatures/help_html/_images/owsavetodb.png +0 -0
  28. timefeatures-2.1.1/timefeatures/help_html/objects.inv +0 -0
  29. timefeatures-2.1.1/timefeatures/help_html/searchindex.js +0 -1
  30. {timefeatures-2.1.1 → timefeatures-2.2.0}/LICENSE +0 -0
  31. {timefeatures-2.1.1 → timefeatures-2.2.0}/MANIFEST.in +0 -0
  32. {timefeatures-2.1.1 → timefeatures-2.2.0}/README.md +0 -0
  33. {timefeatures-2.1.1 → timefeatures-2.2.0}/TimeFeatures.egg-info/SOURCES.txt +0 -0
  34. {timefeatures-2.1.1 → timefeatures-2.2.0}/TimeFeatures.egg-info/dependency_links.txt +0 -0
  35. {timefeatures-2.1.1 → timefeatures-2.2.0}/TimeFeatures.egg-info/entry_points.txt +0 -0
  36. {timefeatures-2.1.1 → timefeatures-2.2.0}/TimeFeatures.egg-info/requires.txt +0 -0
  37. {timefeatures-2.1.1 → timefeatures-2.2.0}/TimeFeatures.egg-info/top_level.txt +0 -0
  38. {timefeatures-2.1.1 → timefeatures-2.2.0}/docs/Makefile +0 -0
  39. {timefeatures-2.1.1 → timefeatures-2.2.0}/docs/conf.py +0 -0
  40. {timefeatures-2.1.1 → timefeatures-2.2.0}/docs/index.rst +0 -0
  41. {timefeatures-2.1.1 → timefeatures-2.2.0}/docs/installation.rst +0 -0
  42. {timefeatures-2.1.1 → timefeatures-2.2.0}/docs/requirements.txt +0 -0
  43. {timefeatures-2.1.1 → timefeatures-2.2.0}/docs/widgets/load-from-db.rst +0 -0
  44. {timefeatures-2.1.1 → timefeatures-2.2.0}/docs/widgets/save-to-db.rst +0 -0
  45. {timefeatures-2.1.1 → timefeatures-2.2.0}/docs/widgets/time-feature-constructor.rst +0 -0
  46. {timefeatures-2.1.1 → timefeatures-2.2.0}/docs/widgets/variable-dependency-graph.rst +0 -0
  47. {timefeatures-2.1.1 → timefeatures-2.2.0}/imgs/installation.png +0 -0
  48. {timefeatures-2.1.1 → timefeatures-2.2.0}/imgs/widgets/owtimefeaturesconstructor.png +0 -0
  49. {timefeatures-2.1.1 → timefeatures-2.2.0}/imgs/widgets/owvariabledependencygraph.png +0 -0
  50. {timefeatures-2.1.1 → timefeatures-2.2.0}/imgs/workflow.png +0 -0
  51. {timefeatures-2.1.1 → timefeatures-2.2.0}/setup.cfg +0 -0
  52. {timefeatures-2.1.1 → timefeatures-2.2.0}/setup.py +0 -0
  53. {timefeatures-2.1.1 → timefeatures-2.2.0}/timefeatures/__init__.py +0 -0
  54. {timefeatures-2.1.1 → timefeatures-2.2.0}/timefeatures/help.py +0 -0
  55. {timefeatures-2.1.1 → timefeatures-2.2.0}/timefeatures/help_html/.buildinfo +0 -0
  56. {timefeatures-2.1.1 → timefeatures-2.2.0}/timefeatures/help_html/.buildinfo.bak +0 -0
  57. {timefeatures-2.1.1 → timefeatures-2.2.0}/timefeatures/help_html/_images/owtimefeaturesconstructor.png +0 -0
  58. {timefeatures-2.1.1 → timefeatures-2.2.0}/timefeatures/help_html/_images/owvariabledependencygraph.png +0 -0
  59. {timefeatures-2.1.1 → timefeatures-2.2.0}/timefeatures/help_html/_sources/index.rst.txt +0 -0
  60. {timefeatures-2.1.1 → timefeatures-2.2.0}/timefeatures/help_html/_sources/installation.rst.txt +0 -0
  61. {timefeatures-2.1.1 → timefeatures-2.2.0}/timefeatures/help_html/_sources/widgets/load-from-db.rst.txt +0 -0
  62. {timefeatures-2.1.1 → timefeatures-2.2.0}/timefeatures/help_html/_sources/widgets/save-to-db.rst.txt +0 -0
  63. {timefeatures-2.1.1 → timefeatures-2.2.0}/timefeatures/help_html/_sources/widgets/time-feature-constructor.rst.txt +0 -0
  64. {timefeatures-2.1.1 → timefeatures-2.2.0}/timefeatures/help_html/_sources/widgets/variable-dependency-graph.rst.txt +0 -0
  65. {timefeatures-2.1.1 → timefeatures-2.2.0}/timefeatures/help_html/_static/alabaster.css +0 -0
  66. {timefeatures-2.1.1 → timefeatures-2.2.0}/timefeatures/help_html/_static/basic.css +0 -0
  67. {timefeatures-2.1.1 → timefeatures-2.2.0}/timefeatures/help_html/_static/custom.css +0 -0
  68. {timefeatures-2.1.1 → timefeatures-2.2.0}/timefeatures/help_html/_static/doctools.js +0 -0
  69. {timefeatures-2.1.1 → timefeatures-2.2.0}/timefeatures/help_html/_static/file.png +0 -0
  70. {timefeatures-2.1.1 → timefeatures-2.2.0}/timefeatures/help_html/_static/github-banner.svg +0 -0
  71. {timefeatures-2.1.1 → timefeatures-2.2.0}/timefeatures/help_html/_static/language_data.js +0 -0
  72. {timefeatures-2.1.1 → timefeatures-2.2.0}/timefeatures/help_html/_static/minus.png +0 -0
  73. {timefeatures-2.1.1 → timefeatures-2.2.0}/timefeatures/help_html/_static/plus.png +0 -0
  74. {timefeatures-2.1.1 → timefeatures-2.2.0}/timefeatures/help_html/_static/pygments.css +0 -0
  75. {timefeatures-2.1.1 → timefeatures-2.2.0}/timefeatures/help_html/_static/searchtools.js +0 -0
  76. {timefeatures-2.1.1 → timefeatures-2.2.0}/timefeatures/help_html/_static/sphinx_highlight.js +0 -0
  77. {timefeatures-2.1.1 → timefeatures-2.2.0}/timefeatures/widgets/__init__.py +0 -0
  78. {timefeatures-2.1.1 → timefeatures-2.2.0}/timefeatures/widgets/icons/graphgenerator.svg +0 -0
  79. {timefeatures-2.1.1 → timefeatures-2.2.0}/timefeatures/widgets/icons/loaddatadb.svg +0 -0
  80. {timefeatures-2.1.1 → timefeatures-2.2.0}/timefeatures/widgets/icons/savedatadb.svg +0 -0
  81. {timefeatures-2.1.1 → timefeatures-2.2.0}/timefeatures/widgets/icons/timefeature-xs.svg +0 -0
  82. {timefeatures-2.1.1 → timefeatures-2.2.0}/timefeatures/widgets/icons/timefeature.svg +0 -0
  83. {timefeatures-2.1.1 → timefeatures-2.2.0}/timefeatures/widgets/owtimefeaturesconstructor.py +0 -0
  84. {timefeatures-2.1.1 → timefeatures-2.2.0}/timefeatures/widgets/owvardependencygraph.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: TimeFeatures
3
- Version: 2.1.1
3
+ Version: 2.2.0
4
4
  Summary: Timefeatures add-on for Orange 3 data mining software.
5
5
  Home-page: https://github.com/alervgr/Orange-TimeFeatures
6
6
  Author: Alejandro Rivas García
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: TimeFeatures
3
- Version: 2.1.1
3
+ Version: 2.2.0
4
4
  Summary: Timefeatures add-on for Orange 3 data mining software.
5
5
  Home-page: https://github.com/alervgr/Orange-TimeFeatures
6
6
  Author: Alejandro Rivas García
@@ -1,6 +1,16 @@
1
1
  Changelog
2
2
  =========
3
3
 
4
+ 2.2.0 — 2026-06-09
5
+ -------------------
6
+
7
+ **UX & UI Improvements**
8
+
9
+ - *New (Load from DB / Save to DB):* **Cancel button**. Long-running database operations (both table downloads and uploads) can now be aborted mid-flight. For uploads, SQLAlchemy automatically issues a ``ROLLBACK``, preventing partial or corrupted data from being written.
10
+ - *New (Load from DB):* **Data Preview**. When a dataset is selected from the dropdown, the widget now instantly fetches the first 50 rows (``LIMIT 50``) and displays them in an embedded ``QTableWidget``. This provides immediate visual confirmation of the dataset contents without having to pull the entire table into memory first.
11
+ - *Improvement (Load from DB):* **Smooth progress reporting**. The background reader now streams data in chunks (``chunksize=1000``) rather than running a single monolithic ``read_sql`` query. The progress bar updates continuously as rows arrive, preventing the UI from appearing frozen during large transfers.
12
+ - *UX:* Improved button alignment and spacing in both database widgets to avoid visual overlap. In ``Save to DB``, the Cancel button is stacked logically above the Save button for improved space usage.
13
+
4
14
  2.1.1 — 2026-06-09
5
15
  -------------------
6
16
 
@@ -1,3 +1,3 @@
1
1
  """Single source of truth for the package version."""
2
2
 
3
- __version__ = "2.1.1"
3
+ __version__ = "2.2.0"
@@ -1,6 +1,16 @@
1
1
  Changelog
2
2
  =========
3
3
 
4
+ 2.2.0 — 2026-06-09
5
+ -------------------
6
+
7
+ **UX & UI Improvements**
8
+
9
+ - *New (Load from DB / Save to DB):* **Cancel button**. Long-running database operations (both table downloads and uploads) can now be aborted mid-flight. For uploads, SQLAlchemy automatically issues a ``ROLLBACK``, preventing partial or corrupted data from being written.
10
+ - *New (Load from DB):* **Data Preview**. When a dataset is selected from the dropdown, the widget now instantly fetches the first 50 rows (``LIMIT 50``) and displays them in an embedded ``QTableWidget``. This provides immediate visual confirmation of the dataset contents without having to pull the entire table into memory first.
11
+ - *Improvement (Load from DB):* **Smooth progress reporting**. The background reader now streams data in chunks (``chunksize=1000``) rather than running a single monolithic ``read_sql`` query. The progress bar updates continuously as rows arrive, preventing the UI from appearing frozen during large transfers.
12
+ - *UX:* Improved button alignment and spacing in both database widgets to avoid visual overlap. In ``Save to DB``, the Cancel button is stacked logically above the Save button for improved space usage.
13
+
4
14
  2.1.1 — 2026-06-09
5
15
  -------------------
6
16
 
@@ -1,5 +1,5 @@
1
1
  const DOCUMENTATION_OPTIONS = {
2
- VERSION: '2.1.0',
2
+ VERSION: '2.2.0',
3
3
  LANGUAGE: 'en',
4
4
  COLLAPSE_INDEX: false,
5
5
  BUILDER: 'html',
@@ -9,7 +9,7 @@
9
9
  <link rel="stylesheet" type="text/css" href="_static/pygments.css?v=5ecbeea2" />
10
10
  <link rel="stylesheet" type="text/css" href="_static/basic.css?v=686e5160" />
11
11
  <link rel="stylesheet" type="text/css" href="_static/alabaster.css?v=f6a572b4" />
12
- <script src="_static/documentation_options.js?v=20623aea"></script>
12
+ <script src="_static/documentation_options.js?v=b21de401"></script>
13
13
  <script src="_static/doctools.js?v=9bcbadda"></script>
14
14
  <script src="_static/sphinx_highlight.js?v=dc90522c"></script>
15
15
  <link rel="index" title="Index" href="genindex.html" />
@@ -95,7 +95,17 @@
95
95
  <section id="changelog">
96
96
  <h1>Changelog<a class="headerlink" href="#changelog" title="Link to this heading">¶</a></h1>
97
97
  <section id="id1">
98
- <h2>2.1.1 — 2026-06-09<a class="headerlink" href="#id1" title="Link to this heading">¶</a></h2>
98
+ <h2>2.2.0 — 2026-06-09<a class="headerlink" href="#id1" title="Link to this heading">¶</a></h2>
99
+ <p><strong>UX &amp; UI Improvements</strong></p>
100
+ <ul class="simple">
101
+ <li><p><em>New (Load from DB / Save to DB):</em> <strong>Cancel button</strong>. Long-running database operations (both table downloads and uploads) can now be aborted mid-flight. For uploads, SQLAlchemy automatically issues a <code class="docutils literal notranslate"><span class="pre">ROLLBACK</span></code>, preventing partial or corrupted data from being written.</p></li>
102
+ <li><p><em>New (Load from DB):</em> <strong>Data Preview</strong>. When a dataset is selected from the dropdown, the widget now instantly fetches the first 50 rows (<code class="docutils literal notranslate"><span class="pre">LIMIT</span> <span class="pre">50</span></code>) and displays them in an embedded <code class="docutils literal notranslate"><span class="pre">QTableWidget</span></code>. This provides immediate visual confirmation of the dataset contents without having to pull the entire table into memory first.</p></li>
103
+ <li><p><em>Improvement (Load from DB):</em> <strong>Smooth progress reporting</strong>. The background reader now streams data in chunks (<code class="docutils literal notranslate"><span class="pre">chunksize=1000</span></code>) rather than running a single monolithic <code class="docutils literal notranslate"><span class="pre">read_sql</span></code> query. The progress bar updates continuously as rows arrive, preventing the UI from appearing frozen during large transfers.</p></li>
104
+ <li><p><em>UX:</em> Improved button alignment and spacing in both database widgets to avoid visual overlap. In <code class="docutils literal notranslate"><span class="pre">Save</span> <span class="pre">to</span> <span class="pre">DB</span></code>, the Cancel button is stacked logically above the Save button for improved space usage.</p></li>
105
+ </ul>
106
+ </section>
107
+ <section id="id2">
108
+ <h2>2.1.1 — 2026-06-09<a class="headerlink" href="#id2" title="Link to this heading">¶</a></h2>
99
109
  <p><strong>Load from DB (new widget)</strong></p>
100
110
  <ul class="simple">
101
111
  <li><p>Lists every dataset registered in the <code class="docutils literal notranslate"><span class="pre">datasets</span></code> metadata table
@@ -8,7 +8,7 @@
8
8
  <link rel="stylesheet" type="text/css" href="_static/pygments.css?v=5ecbeea2" />
9
9
  <link rel="stylesheet" type="text/css" href="_static/basic.css?v=686e5160" />
10
10
  <link rel="stylesheet" type="text/css" href="_static/alabaster.css?v=f6a572b4" />
11
- <script src="_static/documentation_options.js?v=20623aea"></script>
11
+ <script src="_static/documentation_options.js?v=b21de401"></script>
12
12
  <script src="_static/doctools.js?v=9bcbadda"></script>
13
13
  <script src="_static/sphinx_highlight.js?v=dc90522c"></script>
14
14
  <link rel="index" title="Index" href="#" />
@@ -9,7 +9,7 @@
9
9
  <link rel="stylesheet" type="text/css" href="_static/pygments.css?v=5ecbeea2" />
10
10
  <link rel="stylesheet" type="text/css" href="_static/basic.css?v=686e5160" />
11
11
  <link rel="stylesheet" type="text/css" href="_static/alabaster.css?v=f6a572b4" />
12
- <script src="_static/documentation_options.js?v=20623aea"></script>
12
+ <script src="_static/documentation_options.js?v=b21de401"></script>
13
13
  <script src="_static/doctools.js?v=9bcbadda"></script>
14
14
  <script src="_static/sphinx_highlight.js?v=dc90522c"></script>
15
15
  <link rel="index" title="Index" href="genindex.html" />
@@ -9,7 +9,7 @@
9
9
  <link rel="stylesheet" type="text/css" href="_static/pygments.css?v=5ecbeea2" />
10
10
  <link rel="stylesheet" type="text/css" href="_static/basic.css?v=686e5160" />
11
11
  <link rel="stylesheet" type="text/css" href="_static/alabaster.css?v=f6a572b4" />
12
- <script src="_static/documentation_options.js?v=20623aea"></script>
12
+ <script src="_static/documentation_options.js?v=b21de401"></script>
13
13
  <script src="_static/doctools.js?v=9bcbadda"></script>
14
14
  <script src="_static/sphinx_highlight.js?v=dc90522c"></script>
15
15
  <link rel="index" title="Index" href="genindex.html" />
@@ -9,7 +9,7 @@
9
9
  <link rel="stylesheet" type="text/css" href="_static/basic.css?v=686e5160" />
10
10
  <link rel="stylesheet" type="text/css" href="_static/alabaster.css?v=f6a572b4" />
11
11
 
12
- <script src="_static/documentation_options.js?v=20623aea"></script>
12
+ <script src="_static/documentation_options.js?v=b21de401"></script>
13
13
  <script src="_static/doctools.js?v=9bcbadda"></script>
14
14
  <script src="_static/sphinx_highlight.js?v=dc90522c"></script>
15
15
  <script src="_static/searchtools.js"></script>
@@ -0,0 +1 @@
1
+ Search.setIndex({"alltitles": {"2.1.1 \u2014 2026-06-09": [[0, "id2"]], "2.2.0 \u2014 2026-06-09": [[0, "id1"]], "Anaconda": [[2, "anaconda"]], "Auto-load": [[3, "auto-load"]], "Available names": [[5, "available-names"]], "Building this documentation": [[1, "building-this-documentation"]], "Chained descriptors": [[5, "chained-descriptors"]], "Changelog": [[0, null]], "Controls": [[3, "controls"], [4, "controls"], [5, "controls"], [6, "controls"]], "Dependencies": [[2, "dependencies"]], "Edge Weights": [[6, "edge-weights"]], "Examples": [[6, "examples"]], "Expressions": [[5, "expressions"]], "From PyPI": [[2, "from-pypi"]], "From source": [[2, "from-source"]], "Getting started": [[1, "getting-started"]], "How It Works": [[6, "how-it-works"]], "How it Works": [[3, "how-it-works"], [4, "how-it-works"]], "Implementation notes": [[6, "implementation-notes"]], "Indices": [[1, "indices"]], "Input Requirements": [[6, "input-requirements"]], "Inputs": [[3, "inputs"], [4, "inputs"], [5, "inputs"], [6, "inputs"]], "Inside Orange": [[2, "inside-orange"]], "Installation": [[2, null]], "Load from DB": [[3, null]], "Node Metadata": [[6, "node-metadata"]], "Outputs": [[3, "outputs"], [4, "outputs"], [5, "outputs"], [6, "outputs"]], "Project": [[1, "project"]], "Requirements": [[3, "requirements"], [4, "requirements"]], "Rule": [[6, "rule"]], "Running tests": [[2, "running-tests"]], "Save to DB": [[4, null]], "Security": [[4, "security"]], "Testing": [[0, "testing"]], "Time Features Constructor": [[5, null]], "Time-window functions": [[5, "time-window-functions"]], "TimeFeatures": [[1, null]], "Type Mapping": [[4, "type-mapping"]], "Usage Example": [[3, "usage-example"], [4, "usage-example"], [5, "usage-example"], [6, "usage-example"]], "Validation": [[4, "validation"]], "Variable Dependency Graph": [[6, null]], "Warnings": [[6, "warnings"]], "Widgets": [[1, "widgets"]], "Window semantics across chunks": [[5, "window-semantics-across-chunks"]], "Workflow": [[1, "workflow"]], "Workflow Persistence": [[3, "workflow-persistence"]], "Workflow persistence": [[5, "workflow-persistence"]]}, "docnames": ["changes", "index", "installation", "widgets/load-from-db", "widgets/save-to-db", "widgets/time-feature-constructor", "widgets/variable-dependency-graph"], "envversion": {"sphinx": 64, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1}, "filenames": ["changes.rst", "index.rst", "installation.rst", "widgets/load-from-db.rst", "widgets/save-to-db.rst", "widgets/time-feature-constructor.rst", "widgets/variable-dependency-graph.rst"], "indexentries": {}, "objects": {}, "objnames": {}, "objtypes": {}, "terms": {"": [0, 1, 2, 3, 4, 5, 6], "0": [2, 3, 4, 5, 6], "000": [0, 4, 5], "1": [2, 3, 4, 5, 6], "10": [4, 6], "100": [0, 4], "1000": 0, "12": 0, "15": 2, "2": [2, 3, 4, 5], "20": [0, 5, 6], "2038": [0, 4], "22": 2, "255": [0, 4], "3": [2, 3, 4, 5, 6], "4": [2, 3, 4], "5": [0, 2, 5, 6], "50": 0, "6": 2, "62": [0, 4], "63": 4, "65": 0, "7": [0, 2, 5, 6], "8": 2, "9": [2, 3, 4], "92": 0, "9_": [0, 4], "A": [0, 1, 4, 5, 6], "BY": 3, "For": [0, 5, 6], "IF": [0, 4], "INTO": 0, "If": [3, 6], "In": [0, 1, 3, 6], "It": [1, 3, 5], "Not": [0, 3, 4], "On": 3, "One": 6, "The": [0, 1, 2, 3, 4, 5, 6], "These": 5, "_": 6, "__builtins__": [0, 5], "__import__": [0, 5], "_build_domain_with_class": 3, "_deletedatasetwork": 0, "_dialect": [0, 3], "_expression_or_non": 0, "_listdatasetswork": 3, "_loadtablework": 3, "_pandas_if_exist": 4, "_sanitize_nam": 0, "_temporal_weight": 0, "_uploadwork": [0, 4], "ab": [0, 5, 6], "abort": 0, "abov": [0, 3, 4], "absolut": 6, "abstract": [0, 2, 3], "accept": 4, "access": 1, "accident": 4, "accur": [0, 4], "across": [0, 4, 6], "action": 1, "activ": 4, "actual": [0, 3, 4], "ad": 0, "adapt": [3, 4], "add": [0, 1, 2, 4, 5, 6], "address": 4, "adjac": [2, 6], "advanc": 4, "after": [0, 3, 4], "ag": 5, "against": [0, 4, 5], "aggreg": 5, "agnost": [2, 3, 4], "alervgr": 2, "align": 0, "all": [2, 3, 5, 6], "alreadi": [0, 3, 4], "also": [1, 2, 6], "altitud": 5, "among": 0, "an": [0, 1, 2, 3, 4, 5, 6], "anaconda": 1, "ani": [0, 3, 4, 5, 6], "anoth": [0, 3], "anyqt": 2, "app": 1, "appear": [0, 2, 6], "append": [0, 4], "appli": [3, 4, 5], "applic": 2, "appropri": 5, "ar": [0, 2, 3, 4, 5, 6], "arg": 5, "argmax": 5, "argmin": 5, "argument": [0, 6], "arithmet": 5, "around": [0, 4], "arrai": 6, "arriv": [0, 3, 6], "arrow": 1, "ask": 0, "assert": 0, "atan2": 5, "attach": [3, 6], "attribut": [3, 4, 5], "auto": [0, 4, 6], "automat": [0, 3, 4], "avail": [3, 4], "averag": 5, "avoid": [0, 4], "awar": 5, "b": [0, 1, 6], "back": [0, 1, 3, 4, 5, 6], "backend": [3, 4], "background": [0, 3, 4], "bar": [0, 4], "base": [0, 2, 4], "becaus": [0, 3], "becom": [3, 6], "befor": [0, 4, 5], "begin": 4, "behaviour": 0, "behind": 3, "being": 0, "below": [3, 4, 5, 6], "betavari": 5, "between": [0, 3, 4, 5], "bia": 5, "bin": 5, "binari": [0, 2, 3, 4], "bind": 4, "block": [3, 4, 5], "bool": 5, "both": [0, 1, 3, 4], "bottom": 1, "boundari": [0, 5, 6], "box": [0, 3, 4], "break": [0, 4], "breakout": 4, "bring": [3, 4], "bug": 0, "bugfix": 0, "build": [4, 5, 6], "build_dependency_network": 0, "built": 1, "builtin": [0, 5], "bulk": 5, "bundl": 1, "button": [0, 3, 5], "byte": 5, "bytearrai": 5, "c": [0, 2, 4], "cach": [0, 5], "call": [0, 5, 6], "came": 0, "can": [0, 1, 5], "cancel": 0, "canva": [0, 3, 4], "cap": [0, 4], "carri": [0, 6], "cascad": [0, 5], "categor": 5, "cd": 2, "cell": 6, "central": 5, "chain": 0, "chang": [0, 2], "changelog": 1, "charact": 4, "cheap": 3, "check": 0, "checkout": 2, "choic": [0, 3], "choos": 4, "chosen": [0, 1, 3], "chr": 5, "chunk": [0, 4], "chunksiz": 0, "ci": 2, "circular": [0, 5], "class": [0, 1, 3, 4], "class_nam": [0, 3], "class_var": [0, 3], "clean": 5, "cleanli": 0, "clear": [0, 3, 4, 5], "click": [0, 3, 4, 5], "clone": 2, "close": 0, "code": 0, "collaps": 0, "collis": 4, "color": 6, "colour": 0, "column": [0, 1, 3, 4, 5, 6], "com": 2, "combin": 5, "combo": [0, 3, 4], "comboboxsearch": 0, "come": [0, 3, 4], "command": 2, "comment": 0, "commit": 4, "compil": [0, 4], "complet": [0, 1, 4], "complex": 5, "comput": 5, "concaten": 4, "conda": 2, "configur": [5, 6], "confirm": [0, 2, 3], "connect": [0, 3, 4, 6], "consist": 4, "constructor": [0, 1, 3, 6], "consum": [0, 5], "contain": 6, "content": 0, "context": 0, "contextset": 0, "continu": 0, "continuousvari": 4, "convent": [3, 4, 5], "convert": [3, 4], "correct": [0, 4, 5], "corrupt": 0, "count": [0, 1, 3, 4, 5, 6], "cover": 0, "crash": 4, "creat": [0, 4], "credenti": 3, "critic": 0, "cue": 0, "cumprod": 5, "cumsum": 5, "cumul": [0, 5], "curat": 0, "current": [3, 5, 6], "cycl": [0, 5], "dai": 5, "daili": 5, "danger": 5, "data": [0, 1, 3, 4, 5, 6], "databas": [0, 1, 3, 4], "datafram": [0, 3, 4], "dataset": [0, 1, 3, 4], "datetim": [0, 3, 4, 5], "db": [0, 1, 2], "ddl": [0, 4], "ddof": 5, "dead": 0, "declar": [0, 2, 3, 6], "decor": 0, "dedup": 0, "default": [0, 3, 4, 6], "defenc": 1, "defend": 4, "defin": [0, 1, 5], "definit": [0, 1, 5, 6], "deleg": 5, "delet": [0, 3, 4, 5], "depend": [0, 1, 3, 4, 5], "deriv": [0, 1, 5, 6], "desc": 3, "describ": [5, 6], "descript": [3, 4, 5, 6], "descriptor": 0, "destin": 4, "detail": 4, "detect": [4, 5, 6], "develop": [1, 4], "deviat": 5, "df": 4, "dialect": [0, 2, 3, 4], "dialog": [0, 3], "dict": [0, 5], "didn": 0, "differ": 3, "digit": [4, 5], "direct": [0, 1, 6], "directededg": [0, 6], "directli": [1, 6], "disabl": [0, 3, 4], "discov": 2, "discret": 6, "discretevari": 4, "displai": [0, 2], "distribut": 4, "divmod": 5, "doc": 1, "document": 0, "dodg": 0, "doe": [0, 1, 5], "doesn": 4, "domain": [0, 3, 4, 5], "done": 4, "doubl": [0, 4], "double_precis": [0, 4], "down": 5, "download": [0, 3], "downstream": [0, 1, 3, 6], "driven": 0, "driver": [2, 3, 4], "drop": [0, 3, 4], "dropdown": 0, "duplic": 0, "dure": [0, 4], "e": [0, 1, 2, 4, 5, 6], "each": [0, 1, 5, 6], "earlier": 3, "easi": 6, "edg": [0, 1], "edit": 2, "editor": [0, 5], "editordata": 0, "either": 4, "elaps": 4, "ellipsi": 5, "els": 0, "email": [1, 4], "embed": 0, "emit": [0, 3], "empti": [0, 5, 6], "enabl": 0, "encod": 6, "end": [0, 5], "enforc": 4, "engin": [0, 1, 3, 4, 5], "enough": [2, 3], "ensur": 4, "enter": 4, "entir": [0, 5], "entri": 5, "enumer": 5, "environ": [2, 5], "equal": 0, "error": [0, 3, 4, 5, 6], "escap": 4, "especi": 0, "establish": 4, "eval": 0, "evalu": [0, 5], "even": [3, 4, 5], "ever": 4, "everi": [0, 1, 2, 3, 4, 5, 6], "everyth": 4, "everywher": 0, "exact": 4, "exactli": 6, "execut": 4, "exist": [0, 1, 3, 4, 5], "explicit": 6, "explicitli": 3, "explor": [0, 1, 6], "expos": [0, 3, 5, 6], "expovari": 5, "express": [0, 1, 6], "extend": 5, "extra": 0, "extrem": 5, "fail": [0, 3, 4, 5], "failur": 0, "fall": 5, "fals": 5, "famili": [0, 5, 6], "far": [1, 6], "fast": 4, "featur": [0, 1, 2, 3, 6], "featureeditor": 0, "featurefunc": 0, "feed": [1, 5], "fetch": [0, 3], "few": 0, "field": [0, 3, 4, 5], "file": [0, 1, 3, 4], "fill": [3, 4], "filter": [0, 3, 5], "finish": 4, "fire": [0, 3, 6], "first": [0, 3, 4, 5, 6], "fix": [0, 5], "flag": [0, 2, 3], "flatten": 0, "flight": 0, "float": 5, "floor": 5, "flow": [0, 3], "fly": 3, "follow": 2, "footprint": 6, "forgot": 6, "form": [0, 3, 4], "format": 5, "formula": [0, 6], "forward": [1, 5, 6], "four": 1, "from": [0, 1, 4, 5, 6], "from_row_col": 0, "frozen": 0, "frozenset": 5, "full": [0, 1, 5, 6], "fulli": 0, "function": [0, 1], "further": 4, "g": [0, 4, 5, 6], "gammavari": 5, "garbag": 5, "gate": 3, "gauss": 5, "gener": [0, 4, 5, 6], "get": [0, 6], "getattr": 5, "git": 2, "github": 2, "global": 3, "go": [0, 2], "goe": 4, "gone": 0, "grafo": 0, "graph": [0, 1, 2, 5], "green": 4, "grew": 0, "group": 5, "grow": 3, "guard": 0, "gui": [0, 2, 3], "ha": [3, 4, 6], "had": [0, 3], "handi": [0, 3], "handler": 0, "happen": [0, 3, 4, 5], "harden": 0, "hasattr": 5, "hash": 5, "have": [0, 4, 6], "header": [3, 4], "headless": 2, "help": 1, "help_html": 1, "helper": [0, 3, 5], "hex": 5, "host": [2, 3, 4], "how": 1, "html": 1, "http": 2, "hyphen": 6, "hypot": 5, "i": [0, 1, 2, 3, 4, 5, 6], "id": 5, "idempot": 0, "ident": 0, "identifi": [0, 4, 5], "if_exist": 4, "ignor": 5, "immedi": 0, "implicit": 0, "improv": 0, "includ": [0, 2, 4], "include_meta": 4, "inclus": 5, "independ": [0, 6], "index": [0, 1, 5, 6], "indexerror": 0, "indic": 5, "info": 3, "inform": 3, "inherit": 2, "inject": [0, 1, 4], "input": 0, "insert": [0, 4], "insid": [1, 4, 5, 6], "instal": [0, 1], "install_requir": 0, "instanc": 6, "instantli": 0, "instead": [0, 5, 6], "int": 5, "integ": 6, "intention": 2, "interact": 0, "intern": [0, 4], "internet": 1, "introduc": 5, "invers": 3, "issu": 0, "item": 3, "iter": 5, "its": [0, 3, 6], "itself": [0, 2, 3, 4], "just": [0, 3], "keep": [0, 1, 3, 4, 5], "know": 5, "known": 6, "label": [0, 3, 4, 6], "larg": [0, 3], "largest": 0, "last": 3, "latent": 0, "latter": 1, "layer": 4, "lead": 5, "leav": [3, 4], "left": 2, "legaci": 0, "len": [0, 5], "letter": 4, "level": [0, 2, 4], "libpq": 4, "lifetim": 3, "like": [3, 5], "limit": [0, 3], "line": [0, 6], "linear": 6, "linux": [0, 2, 4], "list": [0, 1, 2, 3, 5], "liter": [0, 6], "live": [0, 2, 3], "load": [0, 1, 5], "local": 1, "lock": 5, "log": 5, "logic": 0, "lognormvari": 5, "long": [0, 2, 4], "longer": [0, 3], "look": [1, 6], "lookup": 6, "loop": 0, "lose": 0, "lost": 0, "m": [0, 1, 2], "maco": [0, 2, 4], "mai": [4, 5], "make": 6, "manual": 3, "map": [0, 5, 6], "mark": [1, 3], "match": [0, 4, 6], "math": [0, 5], "matric": 2, "matrix": [0, 6], "matter": 5, "max": [0, 1, 4, 5, 6], "maximum": 6, "mean": [0, 1, 3, 5, 6], "median": 5, "memori": [0, 5], "memoryview": 5, "mention": 5, "messag": 6, "meta": [0, 3, 4, 5, 6], "metadata": [0, 3, 4], "method": [0, 4], "mid": [0, 4], "migrat": 0, "million": 5, "min": [0, 1, 5, 6], "minimum": 2, "minut": 4, "mirror": [0, 3, 5], "miss": [0, 5], "mix": [0, 6], "mode": [0, 2, 4], "model": 1, "modificar_express": 0, "modul": 5, "monolith": 0, "more": 6, "most": [3, 5], "move": 0, "multi": [0, 4, 5], "multipl": [0, 4], "must": [4, 6], "my_time_series_data": 4, "mysql": [0, 1, 2, 3, 4], "n": [0, 3], "name": [0, 3, 4, 6], "nameerror": [0, 5], "nan": [5, 6], "nanmean": 5, "nanstd": 5, "nativ": 4, "need": [0, 1, 3, 5], "network": [0, 1, 2, 6], "neutral": [3, 4], "never": [0, 3, 4], "new": [0, 1, 2, 3, 4, 5], "newli": 5, "next": [0, 2, 5], "no_deriv": 0, "node": 0, "non": [0, 5], "none": [3, 5], "normalvari": 5, "notif": 4, "now": 0, "number": [5, 6], "numer": [0, 5, 6], "numpi": [0, 2, 5], "n\u00b2": 0, "n\u00b3": 0, "o": [0, 6], "object": 5, "obviou": 0, "occurr": [4, 6], "oct": 5, "off": 0, "offer": 0, "offlin": 1, "offset": 5, "old": 0, "onc": 4, "one": [0, 1, 3, 5, 6], "ones": [0, 1, 5, 6], "onli": [0, 3, 4, 5, 6], "ons": 2, "op": 0, "open": [0, 2, 3, 5], "oper": [0, 3, 5], "option": [0, 1, 2, 3, 4, 5, 6], "orang": [0, 1, 3, 4, 5, 6], "orange3": [1, 2, 3, 4], "orangecontrib": 6, "ord": 5, "order": [3, 4, 5], "origin": [0, 3, 4, 5, 6], "other": [3, 5, 6], "out": [0, 2, 3, 4, 5], "output": [0, 1], "outsid": [3, 5, 6], "over": [0, 5], "overlap": 0, "overrid": 3, "overwrit": [0, 4], "ow": [0, 3], "owbasesql": 3, "pack_data": 0, "packag": 2, "page": 1, "panda": [0, 3, 4], "pandas_compat": [0, 3, 4], "pandas_sql_chunks": 4, "panel": [0, 1], "parallel": 3, "param": 4, "paramet": 4, "parametris": [0, 4], "paretovari": 5, "partial": 0, "pass": 0, "password": 4, "past": 5, "path": [3, 5], "pattern": 0, "payload": 4, "pend": 3, "per": [0, 3, 4, 5, 6], "perform": 0, "persist": [0, 1, 4], "pi": 5, "pick": [2, 3, 4, 6], "picker": 5, "pip": [0, 1, 2], "pipelin": [1, 4], "place": 4, "plain": [0, 6], "plu": [3, 4, 5], "popul": [0, 3, 5], "port": 4, "postgresql": [0, 1, 2, 3, 4], "pow": 5, "pre": 0, "preced": 5, "precis": 4, "precompil": 2, "precomput": [0, 6], "prepar": 4, "present": 4, "preserv": 5, "prevent": 0, "preview": [0, 1], "previou": [0, 4, 5], "previous": [0, 1, 3], "price": 5, "process": 6, "produc": [0, 2, 4, 5, 6], "progress": [0, 4], "provid": [0, 2], "psycopg2": [0, 2, 3, 4], "public": 5, "publish": [0, 3], "pull": [0, 1, 2, 3], "punctuat": 5, "pure": 4, "py": [0, 2], "pymysql": [2, 3, 4], "pypi": 1, "pyqt5": 2, "python": [1, 2, 4, 5], "qt": [2, 4], "qtablewidget": 0, "qthread": [0, 3, 4], "queri": [0, 3, 4], "quot": [0, 3, 4], "quote_id": 0, "rais": [0, 5], "random": [0, 5], "rang": 5, "rather": [0, 5], "re": [0, 1, 3, 4, 5], "reach": 4, "read": [0, 3, 5], "read_sql": [0, 3], "reader": 0, "readi": 3, "real": 4, "rebuild": [3, 6], "receiv": 5, "recent": 3, "record": [0, 3], "recreat": [0, 4], "refactor": 0, "refer": [0, 5, 6], "referenc": 5, "reflect": 6, "refresh": [0, 3], "refus": 4, "regener": 6, "regex": [0, 4, 6], "regist": 0, "registri": [0, 3, 4], "regress": 0, "regular": [0, 5], "reinstal": 2, "reject": 6, "reload": [0, 5], "remain": 3, "remot": 4, "remov": [0, 3, 5], "render": 4, "reopen": [0, 3], "reorder": 4, "repeat": 4, "replac": [0, 5], "report": [0, 5], "repr": 5, "requir": [0, 2], "reset": 5, "resolv": [0, 1], "respons": [3, 4], "rest": 3, "restart": 2, "restor": [0, 3], "restrict": 5, "result": [1, 3, 5], "return": [0, 3, 5], "revers": 5, "rewrit": [0, 4, 6], "right": [0, 3, 5], "roll": [4, 5], "rollback": 0, "round": [0, 3, 5], "row": [0, 3, 4, 5, 6], "rule": [3, 4], "run": [0, 1, 3, 4, 5], "runtim": [0, 2], "safe": [0, 4, 5], "safeti": 0, "same": [0, 2, 3, 4], "sanitis": [5, 6], "save": [0, 1, 2, 3, 5], "scan": 6, "schema": [3, 4], "schema_onli": [0, 3, 5], "scipi": 2, "sd": [0, 1, 5, 6], "search": 1, "searchabl": 3, "second": [0, 4, 6], "section": 2, "see": [0, 2, 3, 4, 5, 6], "select": [0, 1, 3, 4, 5], "selected_class": [0, 3], "selected_dataset": [0, 3], "selector": 0, "semant": 0, "send": [0, 1, 5], "sent": [4, 6], "sentinel": 3, "separ": 6, "seri": [1, 5], "server": [0, 3], "set": [0, 3, 5, 6], "settingshandl": 0, "setup": [0, 2], "shape": 6, "shift": [0, 1, 5, 6], "ship": 1, "shot": 3, "should": 4, "show": [0, 3, 4], "side": 3, "sign": 0, "signal": [3, 4, 5, 6], "sin": 5, "sinc": 0, "singl": [0, 3, 4, 5, 6], "sink": 4, "size": [0, 6], "skip": [3, 5], "slice": [0, 5], "small": [3, 4], "smooth": 0, "so": [0, 1, 2, 3, 4, 5, 6], "someth": [0, 3], "soon": [0, 3], "sort": [0, 5], "sourc": [0, 1, 3, 5, 6], "space": [0, 5, 6], "span": 6, "spars": [0, 2, 6], "spawn": [3, 4], "spec": 4, "specif": 4, "speedup": 0, "sphinx": 1, "spot": 6, "sql": [0, 1, 2, 3, 4], "sqlalchemi": [0, 2, 3, 4], "sqrt": [0, 5], "stack": 0, "stage": 4, "stai": [0, 3, 4], "standard": [0, 5], "start": [4, 5], "state": [0, 3, 4, 5], "statu": [0, 3, 4], "std": 5, "step": [0, 4, 5], "still": [0, 3, 5], "stop": 4, "storag": 0, "store": [1, 3, 5], "stored_set": 0, "str": 5, "straight": 0, "stream": 0, "string": [4, 6], "stringvari": 4, "style": [1, 5, 6], "subtleti": 3, "succe": [0, 3], "success": [0, 3, 4], "successfulli": 3, "suit": [0, 2], "sum": [0, 1, 5, 6], "summari": 4, "summaris": [1, 6], "superset": 4, "suppli": 0, "support": [0, 4], "suppress": 0, "surpris": [0, 3], "surviv": 5, "switch": 4, "synchron": 3, "syntax": 4, "t": [0, 4], "tabl": [0, 1, 3, 4, 5, 6], "table_from_fram": [0, 3], "table_to_fram": [0, 4], "tailor": 4, "take": 5, "taken": 4, "target": [0, 3, 4], "temperatur": 5, "tempor": [0, 6], "temporarili": [3, 4], "test": 1, "text": [0, 4, 5, 6], "than": [0, 5], "thank": 0, "thei": [0, 5], "them": [0, 4, 5, 6], "therefor": 2, "thi": [0, 2, 3, 4, 5, 6], "thick": 6, "thread": [0, 3], "three": [0, 3, 4, 6], "through": [0, 2, 3, 4, 5], "tick": 2, "time": [0, 1, 2, 3, 4, 6], "timefeatur": [0, 2, 3, 4, 5, 6], "timestamp": [0, 3, 4], "timevari": 4, "tini": 3, "to_sql": [0, 4], "togeth": [0, 1, 5], "toggl": 5, "too": 5, "tool": 3, "toolbox": 2, "toolchain": 2, "toolkit": [2, 3, 4], "top": [1, 3, 4], "topolog": [0, 5], "total": [0, 4], "touch": [0, 4], "transact": 4, "transfer": 0, "transform": [0, 1, 5], "transit": [3, 4], "treat": [3, 6], "tree": 2, "triangular": 5, "trigger": 3, "trip": [0, 3], "true": [0, 3, 4, 5], "truth": 5, "tupl": 5, "turn": 4, "two": [3, 4, 5, 6], "type": [0, 2, 3, 5, 6], "typic": [0, 1], "ui": [0, 2], "under": [0, 2, 3, 4], "underscor": [4, 5, 6], "undirectededg": 0, "undo": 3, "uniform": 5, "unit": 0, "unittest": 2, "unknown": 5, "up": [0, 2, 5, 6], "updat": [0, 4], "upload": [0, 3, 4], "upstream": [0, 5], "url": 4, "us": [0, 1, 2, 3, 4, 5, 6], "usag": 0, "user": [0, 3, 4], "usernam": 4, "usual": [0, 6], "ux": 0, "v": [0, 2], "v4": [0, 5], "valid": [3, 6], "valu": [3, 4, 5, 6], "var": 5, "var_nam": 6, "var_typ": 6, "varchar": [0, 4], "variabl": [0, 1, 2, 3, 4, 5], "variant": 5, "veloc": 5, "version": [2, 3], "via": [0, 3, 4, 5, 6], "virtual": 2, "visibl": 3, "visual": 0, "visualis": [1, 6], "vonmisesvari": 5, "wa": [0, 3], "wai": 4, "want": [1, 3, 4], "warn": 0, "watch": 4, "weibullvari": 5, "weight": [0, 1], "well": 4, "were": 5, "what": [0, 1], "wheel": [1, 2], "when": [0, 3, 4, 5, 6], "whenev": [4, 6], "which": [0, 4, 5, 6], "while": [0, 3, 4], "whitelist": [0, 4], "whole": 5, "whose": [5, 6], "widest": 6, "widget": [0, 2, 3, 4, 5, 6], "widgettest": [0, 2], "win": 6, "window": [0, 1, 2, 4, 6], "wipe": 3, "wire": 0, "without": [0, 1, 2, 3, 4], "word": 6, "work": [0, 1, 2, 5], "worker": [0, 2, 3, 4], "workflow": [0, 4], "would": 4, "wrap": 0, "write": [0, 4, 5], "write_mod": 0, "written": 0, "x": [0, 4, 5], "x1": [0, 5, 6], "x10": 6, "x2": [0, 5, 6], "x3": 6, "xvfb": 2, "x\u1d62": 6, "x\u2c7c": 6, "you": [1, 3, 4, 5, 6], "z0": [0, 4], "z_": [0, 4], "za": [0, 4], "zip": 5}, "titles": ["Changelog", "TimeFeatures", "Installation", "Load from DB", "Save to DB", "Time Features Constructor", "Variable Dependency Graph"], "titleterms": {"0": 0, "06": 0, "09": 0, "1": 0, "2": 0, "2026": 0, "It": 6, "across": 5, "anaconda": 2, "auto": 3, "avail": 5, "build": 1, "chain": 5, "changelog": 0, "chunk": 5, "constructor": 5, "control": [3, 4, 5, 6], "db": [3, 4], "depend": [2, 6], "descriptor": 5, "document": 1, "edg": 6, "exampl": [3, 4, 5, 6], "express": 5, "featur": 5, "from": [2, 3], "function": 5, "get": 1, "graph": 6, "how": [3, 4, 6], "implement": 6, "indic": 1, "input": [3, 4, 5, 6], "insid": 2, "instal": 2, "load": 3, "map": 4, "metadata": 6, "name": 5, "node": 6, "note": 6, "orang": 2, "output": [3, 4, 5, 6], "persist": [3, 5], "project": 1, "pypi": 2, "requir": [3, 4, 6], "rule": 6, "run": 2, "save": 4, "secur": 4, "semant": 5, "sourc": 2, "start": 1, "test": [0, 2], "thi": 1, "time": 5, "timefeatur": 1, "type": 4, "unreleas": [], "usag": [3, 4, 5, 6], "valid": 4, "variabl": 6, "warn": 6, "weight": 6, "widget": 1, "window": 5, "work": [3, 4, 6], "workflow": [1, 3, 5]}})
@@ -9,7 +9,7 @@
9
9
  <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=5ecbeea2" />
10
10
  <link rel="stylesheet" type="text/css" href="../_static/basic.css?v=686e5160" />
11
11
  <link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=f6a572b4" />
12
- <script src="../_static/documentation_options.js?v=20623aea"></script>
12
+ <script src="../_static/documentation_options.js?v=b21de401"></script>
13
13
  <script src="../_static/doctools.js?v=9bcbadda"></script>
14
14
  <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
15
15
  <link rel="index" title="Index" href="../genindex.html" />
@@ -9,7 +9,7 @@
9
9
  <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=5ecbeea2" />
10
10
  <link rel="stylesheet" type="text/css" href="../_static/basic.css?v=686e5160" />
11
11
  <link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=f6a572b4" />
12
- <script src="../_static/documentation_options.js?v=20623aea"></script>
12
+ <script src="../_static/documentation_options.js?v=b21de401"></script>
13
13
  <script src="../_static/doctools.js?v=9bcbadda"></script>
14
14
  <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
15
15
  <link rel="index" title="Index" href="../genindex.html" />
@@ -9,7 +9,7 @@
9
9
  <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=5ecbeea2" />
10
10
  <link rel="stylesheet" type="text/css" href="../_static/basic.css?v=686e5160" />
11
11
  <link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=f6a572b4" />
12
- <script src="../_static/documentation_options.js?v=20623aea"></script>
12
+ <script src="../_static/documentation_options.js?v=b21de401"></script>
13
13
  <script src="../_static/doctools.js?v=9bcbadda"></script>
14
14
  <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
15
15
  <link rel="index" title="Index" href="../genindex.html" />
@@ -9,7 +9,7 @@
9
9
  <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=5ecbeea2" />
10
10
  <link rel="stylesheet" type="text/css" href="../_static/basic.css?v=686e5160" />
11
11
  <link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=f6a572b4" />
12
- <script src="../_static/documentation_options.js?v=20623aea"></script>
12
+ <script src="../_static/documentation_options.js?v=b21de401"></script>
13
13
  <script src="../_static/doctools.js?v=9bcbadda"></script>
14
14
  <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
15
15
  <link rel="index" title="Index" href="../genindex.html" />
@@ -7,6 +7,7 @@ import Orange.data.pandas_compat as pc
7
7
  from AnyQt.QtCore import QObject, QThread, pyqtSignal
8
8
  from AnyQt.QtWidgets import (
9
9
  QComboBox, QGridLayout, QHBoxLayout, QLabel, QMessageBox, QPushButton,
10
+ QTableWidget, QTableWidgetItem
10
11
  )
11
12
 
12
13
  from Orange.data import Domain
@@ -103,12 +104,15 @@ class _LoadTableWorker(QObject):
103
104
 
104
105
  finished = pyqtSignal(object)
105
106
  failed = pyqtSignal(str)
107
+ progress_changed = pyqtSignal(float)
106
108
 
107
- def __init__(self, dialect, connection_params, table_name):
109
+ def __init__(self, dialect, connection_params, table_name, total_rows):
108
110
  super().__init__()
109
111
  self.dialect = dialect
110
112
  self.connection_params = connection_params
111
113
  self.table_name = table_name
114
+ self.total_rows = total_rows
115
+ self.is_cancelled = False
112
116
 
113
117
  def run(self):
114
118
  import pandas as pd
@@ -120,10 +124,24 @@ class _LoadTableWorker(QObject):
120
124
  )
121
125
  qi = self.dialect.quote_ident
122
126
  with engine.begin() as connection:
123
- frame = pd.read_sql(
127
+ chunks = []
128
+ loaded_rows = 0
129
+ for chunk in pd.read_sql(
124
130
  text(f"SELECT * FROM {qi(self.table_name)}"),
125
131
  connection,
126
- )
132
+ chunksize=1000
133
+ ):
134
+ if self.is_cancelled:
135
+ raise Exception("Load cancelled by user.")
136
+ chunks.append(chunk)
137
+ loaded_rows += len(chunk)
138
+ if self.total_rows > 0:
139
+ self.progress_changed.emit(10 + (loaded_rows / self.total_rows) * 60)
140
+
141
+ if chunks:
142
+ frame = pd.concat(chunks, ignore_index=True)
143
+ else:
144
+ frame = pd.read_sql(text(f"SELECT * FROM {qi(self.table_name)} LIMIT 0"), connection)
127
145
  self.finished.emit(frame)
128
146
  except Exception as ex: # pylint: disable=broad-except
129
147
  self.failed.emit(str(ex))
@@ -218,6 +236,8 @@ class owloadfromdb(OWBaseSql, OWWidget):
218
236
  self.btn_loaddata = None
219
237
  self.btn_refresh = None
220
238
  self.btn_delete = None
239
+ self.btn_cancel = None
240
+ self.preview_table = None
221
241
  self.data = None
222
242
  self._busy = False
223
243
  self._available = {}
@@ -335,7 +355,6 @@ class owloadfromdb(OWBaseSql, OWWidget):
335
355
  self.class_combo.currentTextChanged.connect(self._on_class_changed)
336
356
  layout.addWidget(self.class_combo, 2, 1, 1, 3)
337
357
 
338
- # Row 3: Load button right-aligned.
339
358
  self.btn_loaddata = QPushButton(
340
359
  "Load",
341
360
  toolTip="Load the selected dataset into Orange.",
@@ -343,7 +362,27 @@ class owloadfromdb(OWBaseSql, OWWidget):
343
362
  )
344
363
  self.btn_loaddata.clicked.connect(self.load_data)
345
364
  self.btn_loaddata.setEnabled(False)
346
- layout.addWidget(self.btn_loaddata, 3, 3)
365
+
366
+ self.btn_cancel = QPushButton("Cancel", minimumWidth=80)
367
+ self.btn_cancel.clicked.connect(self.cancelLoad)
368
+ self.btn_cancel.setEnabled(False)
369
+
370
+ button_row = QHBoxLayout()
371
+ button_row.setSpacing(0)
372
+ button_row.setContentsMargins(0, 0, 0, 0)
373
+ button_row.addStretch(1)
374
+ button_row.addWidget(self.btn_cancel)
375
+ button_row.addSpacing(20)
376
+ button_row.addWidget(self.btn_loaddata)
377
+ layout.addLayout(button_row, 3, 0, 1, 4)
378
+
379
+ # Row 4: Preview Table
380
+ layout.addWidget(QLabel("Data Preview (Top 50 rows):"), 4, 0, 1, 4)
381
+ self.preview_table = QTableWidget()
382
+ self.preview_table.setEditTriggers(QTableWidget.NoEditTriggers)
383
+ self.preview_table.setSelectionMode(QTableWidget.NoSelection)
384
+ self.preview_table.setFixedHeight(150)
385
+ layout.addWidget(self.preview_table, 5, 0, 1, 4)
347
386
 
348
387
  def _set_connection_status(self, message, state="neutral"):
349
388
  if self.connection_status_label is None:
@@ -376,10 +415,16 @@ class owloadfromdb(OWBaseSql, OWWidget):
376
415
  self.class_combo.setEnabled(False)
377
416
 
378
417
  self.btn_loaddata.setEnabled(False)
418
+ if self.btn_cancel is not None:
419
+ self.btn_cancel.setEnabled(False)
379
420
  if self.btn_refresh is not None:
380
421
  self.btn_refresh.setEnabled(False)
381
422
  if self.btn_delete is not None:
382
423
  self.btn_delete.setEnabled(False)
424
+ if self.preview_table is not None:
425
+ self.preview_table.clear()
426
+ self.preview_table.setRowCount(0)
427
+ self.preview_table.setColumnCount(0)
383
428
  self.dataset_info_label.setText(
384
429
  "Connect to a database to list available datasets."
385
430
  )
@@ -620,8 +665,7 @@ class owloadfromdb(OWBaseSql, OWWidget):
620
665
  info += f" ({ds['class']})"
621
666
  self.dataset_info_label.setText(info)
622
667
 
623
- # ``SELECT ... LIMIT 0`` is cheap (server only sends the column
624
- # header back) so it's fine to run synchronously here.
668
+ # header back if 0, but 50 is also fast) so it's fine to run synchronously here.
625
669
  try:
626
670
  _, _, text, _ = _sqlalchemy_modules()
627
671
  engine = _create_sqlalchemy_engine(
@@ -630,13 +674,23 @@ class owloadfromdb(OWBaseSql, OWWidget):
630
674
  qi = self.dialect.quote_ident
631
675
  with engine.begin() as connection:
632
676
  result = connection.execute(
633
- text(f"SELECT * FROM {qi(name)} LIMIT 0")
677
+ text(f"SELECT * FROM {qi(name)} LIMIT 50")
634
678
  )
635
679
  columns = list(result.keys())
680
+ rows = [dict(row) for row in result.mappings()]
636
681
  engine.dispose()
637
682
  except Exception as ex: # pylint: disable=broad-except
638
683
  self.Error.connection(str(ex))
639
684
  return
685
+
686
+ self.preview_table.clear()
687
+ self.preview_table.setColumnCount(len(columns))
688
+ self.preview_table.setHorizontalHeaderLabels(columns)
689
+ self.preview_table.setRowCount(len(rows))
690
+ for r_idx, row in enumerate(rows):
691
+ for c_idx, col in enumerate(columns):
692
+ item = QTableWidgetItem(str(row[col]) if row[col] is not None else "")
693
+ self.preview_table.setItem(r_idx, c_idx, item)
640
694
 
641
695
  self.class_combo.blockSignals(True)
642
696
  self.class_combo.clear()
@@ -681,13 +735,17 @@ class owloadfromdb(OWBaseSql, OWWidget):
681
735
  )
682
736
 
683
737
  self._thread = QThread(self)
738
+
739
+ total_rows = self._available[self.selected_dataset].get("rows", 0)
684
740
  self._worker = _LoadTableWorker(
685
741
  dialect=self.dialect,
686
742
  connection_params=self._connection_params(),
687
743
  table_name=self.selected_dataset,
744
+ total_rows=total_rows,
688
745
  )
689
746
  self._worker.moveToThread(self._thread)
690
747
  self._thread.started.connect(self._worker.run)
748
+ self._worker.progress_changed.connect(self.progressBarSet)
691
749
  self._worker.finished.connect(self._on_table_loaded)
692
750
  self._worker.failed.connect(self._on_table_failed)
693
751
  self._worker.finished.connect(lambda *_: self._thread.quit())
@@ -728,6 +786,13 @@ class owloadfromdb(OWBaseSql, OWWidget):
728
786
  self._set_connection_status(f"Load failed: {message}", "error")
729
787
  self.Outputs.data.send(None)
730
788
 
789
+ def cancelLoad(self):
790
+ if self._worker is not None:
791
+ self._worker.is_cancelled = True
792
+ if self.btn_cancel is not None:
793
+ self.btn_cancel.setEnabled(False)
794
+ self._set_connection_status("Cancelling load...", "neutral")
795
+
731
796
  def _set_load_controls_enabled(self, enabled):
732
797
  for widget in (
733
798
  self.connectbutton, self.btn_loaddata, self.backendcombo,
@@ -737,6 +802,8 @@ class owloadfromdb(OWBaseSql, OWWidget):
737
802
  ):
738
803
  if widget is not None:
739
804
  widget.setEnabled(enabled)
805
+ if self.btn_cancel is not None:
806
+ self.btn_cancel.setEnabled(not enabled)
740
807
 
741
808
  def onDeleteWidget(self):
742
809
  if self._thread is not None and self._thread.isRunning():
@@ -221,6 +221,7 @@ class _UploadWorker(QObject):
221
221
  self.email_params = email_params
222
222
  # One of "create" / "overwrite" / "append".
223
223
  self.write_mode = write_mode
224
+ self.is_cancelled = False
224
225
 
225
226
  def run(self):
226
227
  start_time = time.time()
@@ -292,6 +293,8 @@ class _UploadWorker(QObject):
292
293
 
293
294
  # --- Data upload ---------------------------------------- #
294
295
  for index, chunk in enumerate(_iter_dataframe_chunks(frame)):
296
+ if self.is_cancelled:
297
+ raise Exception("Upload cancelled by user.")
295
298
  self.status_changed.emit(
296
299
  f"Uploading rows {index + 1}/{total_chunks}..."
297
300
  )
@@ -528,6 +531,7 @@ class owsavetodb(OWBaseSql, OWWidget):
528
531
  self.connection_status_label = None
529
532
  self.modeCombo = None
530
533
  self.emailDirection = None
534
+ self.btn_cancel = None
531
535
  self.data = None
532
536
  self.rows = 0
533
537
  self.cols = 0
@@ -627,6 +631,12 @@ class owsavetodb(OWBaseSql, OWWidget):
627
631
  # placeholderText="Email... (Optional)", toolTip="Email direction")
628
632
  # layoutA.addWidget(self.emailDirection, 5, 0)
629
633
  self.emailDirection = None
634
+
635
+ self.btn_cancel = QPushButton("Cancel", minimumWidth=120)
636
+ self.btn_cancel.clicked.connect(self.cancelUpload)
637
+ self.btn_cancel.setEnabled(False)
638
+ layoutA.addWidget(self.btn_cancel, 4, 2)
639
+
630
640
  self.btn_savedata = QPushButton(
631
641
  "Save", toolTip="Save a dataset into a DB",
632
642
  minimumWidth=120
@@ -634,6 +644,7 @@ class owsavetodb(OWBaseSql, OWWidget):
634
644
  self.btn_savedata.clicked.connect(self.saveData)
635
645
  self.btn_savedata.setEnabled(False)
636
646
  layoutA.addWidget(self.btn_savedata, 5, 2)
647
+
637
648
  self._add_backend_controls()
638
649
  self._add_connection_status()
639
650
 
@@ -798,6 +809,14 @@ class owsavetodb(OWBaseSql, OWWidget):
798
809
  self._upload_thread.finished.connect(self._on_upload_thread_finished)
799
810
  self._upload_thread.start()
800
811
 
812
+ def cancelUpload(self):
813
+ if self._upload_worker is not None:
814
+ self._upload_worker.is_cancelled = True
815
+ if self.btn_cancel is not None:
816
+ self.btn_cancel.setEnabled(False)
817
+ self._set_connection_status("Cancelling upload...", "neutral")
818
+
819
+
801
820
  def _on_upload_status(self, message):
802
821
  self._set_connection_status(message, "neutral")
803
822
 
@@ -830,6 +849,8 @@ class owsavetodb(OWBaseSql, OWWidget):
830
849
  if widget is not None:
831
850
  widget.setEnabled(enabled)
832
851
  self.btn_savedata.setEnabled(enabled and bool(self.data))
852
+ if self.btn_cancel is not None:
853
+ self.btn_cancel.setEnabled(not enabled)
833
854
 
834
855
  def onDeleteWidget(self):
835
856
  if self._upload_thread is not None and self._upload_thread.isRunning():
@@ -1 +0,0 @@
1
- Search.setIndex({"alltitles": {"2.1.1 \u2014 2026-06-09": [[0, "id1"]], "Anaconda": [[2, "anaconda"]], "Auto-load": [[3, "auto-load"]], "Available names": [[5, "available-names"]], "Building this documentation": [[1, "building-this-documentation"]], "Chained descriptors": [[5, "chained-descriptors"]], "Changelog": [[0, null]], "Controls": [[3, "controls"], [4, "controls"], [5, "controls"], [6, "controls"]], "Dependencies": [[2, "dependencies"]], "Edge Weights": [[6, "edge-weights"]], "Examples": [[6, "examples"]], "Expressions": [[5, "expressions"]], "From PyPI": [[2, "from-pypi"]], "From source": [[2, "from-source"]], "Getting started": [[1, "getting-started"]], "How It Works": [[6, "how-it-works"]], "How it Works": [[3, "how-it-works"], [4, "how-it-works"]], "Implementation notes": [[6, "implementation-notes"]], "Indices": [[1, "indices"]], "Input Requirements": [[6, "input-requirements"]], "Inputs": [[3, "inputs"], [4, "inputs"], [5, "inputs"], [6, "inputs"]], "Inside Orange": [[2, "inside-orange"]], "Installation": [[2, null]], "Load from DB": [[3, null]], "Node Metadata": [[6, "node-metadata"]], "Outputs": [[3, "outputs"], [4, "outputs"], [5, "outputs"], [6, "outputs"]], "Project": [[1, "project"]], "Requirements": [[3, "requirements"], [4, "requirements"]], "Rule": [[6, "rule"]], "Running tests": [[2, "running-tests"]], "Save to DB": [[4, null]], "Security": [[4, "security"]], "Testing": [[0, "testing"]], "Time Features Constructor": [[5, null]], "Time-window functions": [[5, "time-window-functions"]], "TimeFeatures": [[1, null]], "Type Mapping": [[4, "type-mapping"]], "Usage Example": [[3, "usage-example"], [4, "usage-example"], [5, "usage-example"], [6, "usage-example"]], "Validation": [[4, "validation"]], "Variable Dependency Graph": [[6, null]], "Warnings": [[6, "warnings"]], "Widgets": [[1, "widgets"]], "Window semantics across chunks": [[5, "window-semantics-across-chunks"]], "Workflow": [[1, "workflow"]], "Workflow Persistence": [[3, "workflow-persistence"]], "Workflow persistence": [[5, "workflow-persistence"]]}, "docnames": ["changes", "index", "installation", "widgets/load-from-db", "widgets/save-to-db", "widgets/time-feature-constructor", "widgets/variable-dependency-graph"], "envversion": {"sphinx": 64, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1}, "filenames": ["changes.rst", "index.rst", "installation.rst", "widgets/load-from-db.rst", "widgets/save-to-db.rst", "widgets/time-feature-constructor.rst", "widgets/variable-dependency-graph.rst"], "indexentries": {}, "objects": {}, "objnames": {}, "objtypes": {}, "terms": {"": [0, 1, 2, 3, 4, 5, 6], "0": [0, 2, 3, 4, 5, 6], "000": [0, 4, 5], "1": [2, 3, 4, 5, 6], "10": [4, 6], "100": [0, 4], "1000": 0, "12": 0, "15": 2, "2": [2, 3, 4, 5], "20": [0, 5, 6], "2038": [0, 4], "22": 2, "255": [0, 4], "3": [2, 3, 4, 5, 6], "4": [2, 3, 4], "5": [0, 2, 5, 6], "50": 0, "6": 2, "62": [0, 4], "63": 4, "65": 0, "7": [0, 2, 5, 6], "8": 2, "9": [2, 3, 4], "92": 0, "9_": [0, 4], "A": [0, 1, 4, 5, 6], "BY": 3, "For": [5, 6], "IF": [0, 4], "INTO": 0, "If": [3, 6], "In": [1, 3, 6], "It": [1, 3, 5], "Not": [0, 3, 4], "On": 3, "One": 6, "The": [0, 1, 2, 3, 4, 5, 6], "These": 5, "_": 6, "__builtins__": [0, 5], "__import__": [0, 5], "_build_domain_with_class": 3, "_deletedatasetwork": 0, "_dialect": [0, 3], "_expression_or_non": 0, "_listdatasetswork": 3, "_loadtablework": 3, "_pandas_if_exist": 4, "_sanitize_nam": 0, "_temporal_weight": 0, "_uploadwork": [0, 4], "ab": [0, 5, 6], "abort": 0, "abov": [0, 3, 4], "absolut": 6, "abstract": [0, 2, 3], "accept": 4, "access": 1, "accident": 4, "accur": [0, 4], "across": [0, 4, 6], "action": 1, "activ": 4, "actual": [0, 3, 4], "ad": 0, "adapt": [3, 4], "add": [0, 1, 2, 4, 5, 6], "address": 4, "adjac": [2, 6], "advanc": 4, "after": [0, 3, 4], "ag": 5, "against": [0, 4, 5], "aggreg": 5, "agnost": [2, 3, 4], "alervgr": 2, "all": [2, 3, 5, 6], "alreadi": [0, 3, 4], "also": [1, 2, 6], "altitud": 5, "among": 0, "an": [0, 1, 2, 3, 4, 5, 6], "anaconda": 1, "ani": [0, 3, 4, 5, 6], "anoth": [0, 3], "anyqt": 2, "app": 1, "appear": [2, 6], "append": [0, 4], "appli": [3, 4, 5], "applic": 2, "appropri": 5, "ar": [0, 2, 3, 4, 5, 6], "arg": 5, "argmax": 5, "argmin": 5, "argument": [0, 6], "arithmet": 5, "around": [0, 4], "arrai": 6, "arriv": [3, 6], "arrow": 1, "ask": 0, "assert": 0, "atan2": 5, "attach": [3, 6], "attribut": [3, 4, 5], "auto": [0, 4, 6], "automat": [0, 3, 4], "avail": [3, 4], "averag": 5, "avoid": [0, 4], "awar": 5, "b": [0, 1, 6], "back": [0, 1, 3, 4, 5, 6], "backend": [3, 4], "background": [0, 3, 4], "bar": 4, "base": [0, 2, 4], "becaus": [0, 3], "becom": [3, 6], "befor": [0, 4, 5], "begin": 4, "behaviour": 0, "behind": 3, "being": 0, "below": [3, 4, 5, 6], "betavari": 5, "between": [0, 3, 4, 5], "bia": 5, "bin": 5, "binari": [0, 2, 3, 4], "bind": 4, "block": [3, 4, 5], "bool": 5, "both": [0, 1, 3, 4], "bottom": 1, "boundari": [0, 5, 6], "box": [0, 3, 4], "break": [0, 4], "breakout": 4, "bring": [3, 4], "bug": 0, "bugfix": 0, "build": [4, 5, 6], "build_dependency_network": 0, "built": 1, "builtin": [0, 5], "bulk": 5, "bundl": 1, "button": [0, 3, 5], "byte": 5, "bytearrai": 5, "c": [0, 2, 4], "cach": [0, 5], "call": [0, 5, 6], "came": 0, "can": [0, 1, 5], "canva": [0, 3, 4], "cap": [0, 4], "carri": [0, 6], "cascad": [0, 5], "categor": 5, "cd": 2, "cell": 6, "central": 5, "chain": 0, "chang": [0, 2], "changelog": 1, "charact": 4, "cheap": 3, "check": 0, "checkout": 2, "choic": [0, 3], "choos": 4, "chosen": [0, 1, 3], "chr": 5, "chunk": [0, 4], "chunksiz": 0, "ci": 2, "circular": [0, 5], "class": [0, 1, 3, 4], "class_nam": [0, 3], "class_var": [0, 3], "clean": 5, "cleanli": 0, "clear": [0, 3, 4, 5], "click": [0, 3, 4, 5], "clone": 2, "close": 0, "code": 0, "collaps": 0, "collis": 4, "color": 6, "colour": 0, "column": [0, 1, 3, 4, 5, 6], "com": 2, "combin": 5, "combo": [0, 3, 4], "comboboxsearch": 0, "come": [0, 3, 4], "command": 2, "comment": 0, "commit": 4, "compil": [0, 4], "complet": [0, 1, 4], "complex": 5, "comput": 5, "concaten": 4, "conda": 2, "configur": [5, 6], "confirm": [0, 2, 3], "connect": [0, 3, 4, 6], "consist": 4, "constructor": [0, 1, 3, 6], "consum": [0, 5], "contain": 6, "context": 0, "contextset": 0, "continuousvari": 4, "convent": [3, 4, 5], "convert": [3, 4], "correct": [0, 4, 5], "count": [0, 1, 3, 4, 5, 6], "cover": 0, "crash": 4, "creat": [0, 4], "credenti": 3, "critic": 0, "cue": 0, "cumprod": 5, "cumsum": 5, "cumul": [0, 5], "curat": 0, "current": [3, 5, 6], "cycl": [0, 5], "dai": 5, "daili": 5, "danger": 5, "data": [0, 1, 3, 4, 5, 6], "databas": [0, 1, 3, 4], "datafram": [0, 3, 4], "dataset": [0, 1, 3, 4], "datetim": [0, 3, 4, 5], "db": [0, 1, 2], "ddl": [0, 4], "ddof": 5, "dead": 0, "declar": [0, 2, 3, 6], "decor": 0, "dedup": 0, "default": [0, 3, 4, 6], "defenc": 1, "defend": 4, "defin": [0, 1, 5], "definit": [0, 1, 5, 6], "deleg": 5, "delet": [0, 3, 4, 5], "depend": [0, 1, 3, 4, 5], "deriv": [0, 1, 5, 6], "desc": 3, "describ": [5, 6], "descript": [3, 4, 5, 6], "descriptor": 0, "destin": 4, "detail": 4, "detect": [4, 5, 6], "develop": [1, 4], "deviat": 5, "df": 4, "dialect": [0, 2, 3, 4], "dialog": [0, 3], "dict": [0, 5], "didn": 0, "differ": 3, "digit": [4, 5], "direct": [0, 1, 6], "directededg": [0, 6], "directli": [1, 6], "disabl": [0, 3, 4], "discov": 2, "discret": 6, "discretevari": 4, "displai": 2, "distribut": 4, "divmod": 5, "doc": 1, "document": 0, "dodg": 0, "doe": [0, 1, 5], "doesn": 4, "domain": [0, 3, 4, 5], "done": 4, "doubl": [0, 4], "double_precis": [0, 4], "down": 5, "download": 3, "downstream": [0, 1, 3, 6], "driven": 0, "driver": [2, 3, 4], "drop": [0, 3, 4], "duplic": 0, "dure": [0, 4], "e": [0, 1, 2, 4, 5, 6], "each": [0, 1, 5, 6], "earlier": 3, "easi": 6, "edg": [0, 1], "edit": 2, "editor": [0, 5], "editordata": 0, "either": 4, "elaps": 4, "ellipsi": 5, "els": 0, "email": [1, 4], "emit": [0, 3], "empti": [0, 5, 6], "enabl": 0, "encod": 6, "end": [0, 5], "enforc": 4, "engin": [0, 1, 3, 4, 5], "enough": [2, 3], "ensur": 4, "enter": 4, "entir": 5, "entri": 5, "enumer": 5, "environ": [2, 5], "equal": 0, "error": [0, 3, 4, 5, 6], "escap": 4, "especi": 0, "establish": 4, "eval": 0, "evalu": [0, 5], "even": [3, 4, 5], "ever": 4, "everi": [0, 1, 2, 3, 4, 5, 6], "everyth": 4, "everywher": 0, "exact": 4, "exactli": 6, "execut": 4, "exist": [0, 1, 3, 4, 5], "explicit": 6, "explicitli": 3, "explor": [0, 1, 6], "expos": [0, 3, 5, 6], "expovari": 5, "express": [0, 1, 6], "extend": 5, "extra": 0, "extrem": 5, "fail": [0, 3, 4, 5], "failur": 0, "fall": 5, "fals": 5, "famili": [0, 5, 6], "far": [1, 6], "fast": 4, "featur": [0, 1, 2, 3, 6], "featureeditor": 0, "featurefunc": 0, "feed": [1, 5], "fetch": 3, "few": 0, "field": [0, 3, 4, 5], "file": [0, 1, 3, 4], "fill": [3, 4], "filter": [0, 3, 5], "finish": 4, "fire": [0, 3, 6], "first": [3, 4, 5, 6], "fix": [0, 5], "flag": [0, 2, 3], "flatten": 0, "float": 5, "floor": 5, "flow": [0, 3], "fly": 3, "follow": 2, "footprint": 6, "forgot": 6, "form": [0, 3, 4], "format": 5, "formula": [0, 6], "forward": [1, 5, 6], "four": 1, "from": [0, 1, 4, 5, 6], "from_row_col": 0, "frozenset": 5, "full": [0, 1, 5, 6], "fulli": 0, "function": [0, 1], "further": 4, "g": [0, 4, 5, 6], "gammavari": 5, "garbag": 5, "gate": 3, "gauss": 5, "gener": [0, 4, 5, 6], "get": [0, 6], "getattr": 5, "git": 2, "github": 2, "global": 3, "go": [0, 2], "goe": 4, "gone": 0, "grafo": 0, "graph": [0, 1, 2, 5], "green": 4, "grew": 0, "group": 5, "grow": 3, "guard": 0, "gui": [0, 2, 3], "ha": [3, 4, 6], "had": [0, 3], "handi": [0, 3], "handler": 0, "happen": [0, 3, 4, 5], "harden": 0, "hasattr": 5, "hash": 5, "have": [4, 6], "header": [3, 4], "headless": 2, "help": 1, "help_html": 1, "helper": [0, 3, 5], "hex": 5, "host": [2, 3, 4], "how": 1, "html": 1, "http": 2, "hyphen": 6, "hypot": 5, "i": [0, 1, 2, 3, 4, 5, 6], "id": 5, "idempot": 0, "ident": 0, "identifi": [0, 4, 5], "if_exist": 4, "ignor": 5, "implicit": 0, "includ": [0, 2, 4], "include_meta": 4, "inclus": 5, "independ": [0, 6], "index": [0, 1, 5, 6], "indexerror": 0, "indic": 5, "info": 3, "inform": 3, "inherit": 2, "inject": [0, 1, 4], "input": 0, "insert": [0, 4], "insid": [1, 4, 5, 6], "instal": [0, 1], "install_requir": 0, "instanc": 6, "instead": [0, 5, 6], "int": 5, "integ": 6, "intention": 2, "interact": 0, "intern": [0, 4], "internet": 1, "introduc": 5, "invers": 3, "item": 3, "iter": 5, "its": [0, 3, 6], "itself": [0, 2, 3, 4], "just": [0, 3], "keep": [0, 1, 3, 4, 5], "know": 5, "known": 6, "label": [0, 3, 4, 6], "larg": [0, 3], "largest": 0, "last": 3, "latent": 0, "latter": 1, "layer": 4, "lead": 5, "leav": [3, 4], "left": 2, "legaci": 0, "len": [0, 5], "letter": 4, "level": [0, 2, 4], "libpq": 4, "lifetim": 3, "like": [3, 5], "limit": 3, "line": [0, 6], "linear": 6, "linux": [0, 2, 4], "list": [0, 1, 2, 3, 5], "liter": [0, 6], "live": [0, 2, 3], "load": [0, 1, 5], "local": 1, "lock": 5, "log": 5, "lognormvari": 5, "long": [0, 2, 4], "longer": [0, 3], "look": [1, 6], "lookup": 6, "loop": 0, "lose": 0, "lost": 0, "m": [0, 1, 2], "maco": [0, 2, 4], "mai": [4, 5], "make": 6, "manual": 3, "map": [0, 5, 6], "mark": [1, 3], "match": [0, 4, 6], "math": [0, 5], "matric": 2, "matrix": [0, 6], "matter": 5, "max": [0, 1, 4, 5, 6], "maximum": 6, "mean": [0, 1, 3, 5, 6], "median": 5, "memori": 5, "memoryview": 5, "mention": 5, "messag": 6, "meta": [0, 3, 4, 5, 6], "metadata": [0, 3, 4], "method": [0, 4], "mid": 4, "migrat": 0, "million": 5, "min": [0, 1, 5, 6], "minimum": 2, "minut": 4, "mirror": [0, 3, 5], "miss": [0, 5], "mix": [0, 6], "mode": [0, 2, 4], "model": 1, "modificar_express": 0, "modul": 5, "more": 6, "most": [3, 5], "move": 0, "multi": [0, 4, 5], "multipl": [0, 4], "must": [4, 6], "my_time_series_data": 4, "mysql": [0, 1, 2, 3, 4], "n": [0, 3], "name": [0, 3, 4, 6], "nameerror": [0, 5], "nan": [5, 6], "nanmean": 5, "nanstd": 5, "nativ": 4, "need": [0, 1, 3, 5], "network": [0, 1, 2, 6], "neutral": [3, 4], "never": [0, 3, 4], "new": [0, 1, 2, 3, 4, 5], "newli": 5, "next": [0, 2, 5], "no_deriv": 0, "node": 0, "non": [0, 5], "none": [3, 5], "normalvari": 5, "notif": 4, "now": 0, "number": [5, 6], "numer": [0, 5, 6], "numpi": [0, 2, 5], "n\u00b2": 0, "n\u00b3": 0, "o": [0, 6], "object": 5, "obviou": 0, "occurr": [4, 6], "oct": 5, "off": 0, "offer": 0, "offlin": 1, "offset": 5, "old": 0, "onc": 4, "one": [0, 1, 3, 5, 6], "ones": [0, 1, 5, 6], "onli": [0, 3, 4, 5, 6], "ons": 2, "op": 0, "open": [0, 2, 3, 5], "oper": [3, 5], "option": [0, 1, 2, 3, 4, 5, 6], "orang": [0, 1, 3, 4, 5, 6], "orange3": [1, 2, 3, 4], "orangecontrib": 6, "ord": 5, "order": [3, 4, 5], "origin": [0, 3, 4, 5, 6], "other": [3, 5, 6], "out": [0, 2, 3, 4, 5], "output": [0, 1], "outsid": [3, 5, 6], "over": [0, 5], "overrid": 3, "overwrit": [0, 4], "ow": [0, 3], "owbasesql": 3, "pack_data": 0, "packag": 2, "page": 1, "panda": [0, 3, 4], "pandas_compat": [0, 3, 4], "pandas_sql_chunks": 4, "panel": [0, 1], "parallel": 3, "param": 4, "paramet": 4, "parametris": [0, 4], "paretovari": 5, "pass": 0, "password": 4, "past": 5, "path": [3, 5], "pattern": 0, "payload": 4, "pend": 3, "per": [0, 3, 4, 5, 6], "perform": 0, "persist": [0, 1, 4], "pi": 5, "pick": [2, 3, 4, 6], "picker": 5, "pip": [0, 1, 2], "pipelin": [1, 4], "place": 4, "plain": [0, 6], "plu": [3, 4, 5], "popul": [0, 3, 5], "port": 4, "postgresql": [0, 1, 2, 3, 4], "pow": 5, "pre": 0, "preced": 5, "precis": 4, "precompil": 2, "precomput": [0, 6], "prepar": 4, "present": 4, "preserv": 5, "preview": 1, "previou": [0, 4, 5], "previous": [0, 1, 3], "price": 5, "process": 6, "produc": [0, 2, 4, 5, 6], "progress": 4, "provid": 2, "psycopg2": [0, 2, 3, 4], "public": 5, "publish": [0, 3], "pull": [0, 1, 2, 3], "punctuat": 5, "pure": 4, "py": [0, 2], "pymysql": [2, 3, 4], "pypi": 1, "pyqt5": 2, "python": [1, 2, 4, 5], "qt": [2, 4], "qthread": [0, 3, 4], "queri": [0, 3, 4], "quot": [0, 3, 4], "quote_id": 0, "rais": [0, 5], "random": [0, 5], "rang": 5, "rather": 5, "re": [0, 1, 3, 4, 5], "reach": 4, "read": [0, 3, 5], "read_sql": [0, 3], "readi": 3, "real": 4, "rebuild": [3, 6], "receiv": 5, "recent": 3, "record": [0, 3], "recreat": [0, 4], "refactor": 0, "refer": [0, 5, 6], "referenc": 5, "reflect": 6, "refresh": [0, 3], "refus": 4, "regener": 6, "regex": [0, 4, 6], "regist": 0, "registri": [0, 3, 4], "regress": 0, "regular": [0, 5], "reinstal": 2, "reject": 6, "reload": [0, 5], "remain": 3, "remot": 4, "remov": [0, 3, 5], "render": 4, "reopen": [0, 3], "reorder": 4, "repeat": 4, "replac": [0, 5], "report": [0, 5], "repr": 5, "requir": [0, 2], "reset": 5, "resolv": [0, 1], "respons": [3, 4], "rest": 3, "restart": 2, "restor": [0, 3], "restrict": 5, "result": [1, 3, 5], "return": [0, 3, 5], "revers": 5, "rewrit": [0, 4, 6], "right": [0, 3, 5], "roll": [4, 5], "round": [0, 3, 5], "row": [0, 3, 4, 5, 6], "rule": [3, 4], "run": [0, 1, 3, 4, 5], "runtim": [0, 2], "safe": [0, 4, 5], "safeti": 0, "same": [0, 2, 3, 4], "sanitis": [5, 6], "save": [0, 1, 2, 3, 5], "scan": 6, "schema": [3, 4], "schema_onli": [0, 3, 5], "scipi": 2, "sd": [0, 1, 5, 6], "search": 1, "searchabl": 3, "second": [0, 4, 6], "section": 2, "see": [0, 2, 3, 4, 5, 6], "select": [0, 1, 3, 4, 5], "selected_class": [0, 3], "selected_dataset": [0, 3], "selector": 0, "semant": 0, "send": [0, 1, 5], "sent": [4, 6], "sentinel": 3, "separ": 6, "seri": [1, 5], "server": [0, 3], "set": [0, 3, 5, 6], "settingshandl": 0, "setup": [0, 2], "shape": 6, "shift": [0, 1, 5, 6], "ship": 1, "shot": 3, "should": 4, "show": [0, 3, 4], "side": 3, "sign": 0, "signal": [3, 4, 5, 6], "sin": 5, "sinc": 0, "singl": [0, 3, 4, 5, 6], "sink": 4, "size": [0, 6], "skip": [3, 5], "slice": [0, 5], "small": [3, 4], "so": [0, 1, 2, 3, 4, 5, 6], "someth": [0, 3], "soon": [0, 3], "sort": [0, 5], "sourc": [0, 1, 3, 5, 6], "space": [5, 6], "span": 6, "spars": [0, 2, 6], "spawn": [3, 4], "spec": 4, "specif": 4, "speedup": 0, "sphinx": 1, "spot": 6, "sql": [0, 1, 2, 3, 4], "sqlalchemi": [0, 2, 3, 4], "sqrt": [0, 5], "stage": 4, "stai": [0, 3, 4], "standard": [0, 5], "start": [4, 5], "state": [0, 3, 4, 5], "statu": [0, 3, 4], "std": 5, "step": [0, 4, 5], "still": [0, 3, 5], "stop": 4, "storag": 0, "store": [1, 3, 5], "stored_set": 0, "str": 5, "straight": 0, "string": [4, 6], "stringvari": 4, "style": [1, 5, 6], "subtleti": 3, "succe": [0, 3], "success": [0, 3, 4], "successfulli": 3, "suit": [0, 2], "sum": [0, 1, 5, 6], "summari": 4, "summaris": [1, 6], "superset": 4, "suppli": 0, "support": [0, 4], "suppress": 0, "surpris": [0, 3], "surviv": 5, "switch": 4, "synchron": 3, "syntax": 4, "t": [0, 4], "tabl": [0, 1, 3, 4, 5, 6], "table_from_fram": [0, 3], "table_to_fram": [0, 4], "tailor": 4, "take": 5, "taken": 4, "target": [0, 3, 4], "temperatur": 5, "tempor": [0, 6], "temporarili": [3, 4], "test": 1, "text": [0, 4, 5, 6], "than": 5, "thank": 0, "thei": [0, 5], "them": [4, 5, 6], "therefor": 2, "thi": [2, 3, 4, 5, 6], "thick": 6, "thread": [0, 3], "three": [0, 3, 4, 6], "through": [0, 2, 3, 4, 5], "tick": 2, "time": [0, 1, 2, 3, 4, 6], "timefeatur": [0, 2, 3, 4, 5, 6], "timestamp": [0, 3, 4], "timevari": 4, "tini": 3, "to_sql": [0, 4], "togeth": [0, 1, 5], "toggl": 5, "too": 5, "tool": 3, "toolbox": 2, "toolchain": 2, "toolkit": [2, 3, 4], "top": [1, 3, 4], "topolog": [0, 5], "total": [0, 4], "touch": [0, 4], "transact": 4, "transform": [0, 1, 5], "transit": [3, 4], "treat": [3, 6], "tree": 2, "triangular": 5, "trigger": 3, "trip": [0, 3], "true": [0, 3, 4, 5], "truth": 5, "tupl": 5, "turn": 4, "two": [3, 4, 5, 6], "type": [0, 2, 3, 5, 6], "typic": [0, 1], "ui": 2, "under": [0, 2, 3, 4], "underscor": [4, 5, 6], "undirectededg": 0, "undo": 3, "uniform": 5, "unit": 0, "unittest": 2, "unknown": 5, "up": [0, 2, 5, 6], "updat": 4, "upload": [0, 3, 4], "upstream": [0, 5], "url": 4, "us": [0, 1, 2, 3, 4, 5, 6], "user": [0, 3, 4], "usernam": 4, "usual": [0, 6], "ux": 0, "v": [0, 2], "v4": [0, 5], "valid": [3, 6], "valu": [3, 4, 5, 6], "var": 5, "var_nam": 6, "var_typ": 6, "varchar": [0, 4], "variabl": [0, 1, 2, 3, 4, 5], "variant": 5, "veloc": 5, "version": [2, 3], "via": [0, 3, 4, 5, 6], "virtual": 2, "visibl": 3, "visualis": [1, 6], "vonmisesvari": 5, "wa": [0, 3], "wai": 4, "want": [1, 3, 4], "warn": 0, "watch": 4, "weibullvari": 5, "weight": [0, 1], "well": 4, "were": 5, "what": [0, 1], "wheel": [1, 2], "when": [0, 3, 4, 5, 6], "whenev": [4, 6], "which": [0, 4, 5, 6], "while": [0, 3, 4], "whitelist": [0, 4], "whole": 5, "whose": [5, 6], "widest": 6, "widget": [0, 2, 3, 4, 5, 6], "widgettest": [0, 2], "win": 6, "window": [0, 1, 2, 4, 6], "wipe": 3, "wire": 0, "without": [0, 1, 2, 3, 4], "word": 6, "work": [0, 1, 2, 5], "worker": [0, 2, 3, 4], "workflow": [0, 4], "would": 4, "wrap": 0, "write": [0, 4, 5], "write_mod": 0, "x": [0, 4, 5], "x1": [0, 5, 6], "x10": 6, "x2": [0, 5, 6], "x3": 6, "xvfb": 2, "x\u1d62": 6, "x\u2c7c": 6, "you": [1, 3, 4, 5, 6], "z0": [0, 4], "z_": [0, 4], "za": [0, 4], "zip": 5}, "titles": ["Changelog", "TimeFeatures", "Installation", "Load from DB", "Save to DB", "Time Features Constructor", "Variable Dependency Graph"], "titleterms": {"0": [], "06": 0, "09": 0, "1": 0, "2": 0, "2026": 0, "It": 6, "across": 5, "anaconda": 2, "auto": 3, "avail": 5, "build": 1, "chain": 5, "changelog": 0, "chunk": 5, "constructor": 5, "control": [3, 4, 5, 6], "db": [3, 4], "depend": [2, 6], "descriptor": 5, "document": 1, "edg": 6, "exampl": [3, 4, 5, 6], "express": 5, "featur": 5, "from": [2, 3], "function": 5, "get": 1, "graph": 6, "how": [3, 4, 6], "implement": 6, "indic": 1, "input": [3, 4, 5, 6], "insid": 2, "instal": 2, "load": 3, "map": 4, "metadata": 6, "name": 5, "node": 6, "note": 6, "orang": 2, "output": [3, 4, 5, 6], "persist": [3, 5], "project": 1, "pypi": 2, "requir": [3, 4, 6], "rule": 6, "run": 2, "save": 4, "secur": 4, "semant": 5, "sourc": 2, "start": 1, "test": [0, 2], "thi": 1, "time": 5, "timefeatur": 1, "type": 4, "unreleas": [], "usag": [3, 4, 5, 6], "valid": 4, "variabl": 6, "warn": 6, "weight": 6, "widget": 1, "window": 5, "work": [3, 4, 6], "workflow": [1, 3, 5]}})
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes