chore: migrate gift-eval module - #369

Merged
AzulGarza merged 8 commits into
mainfrom
chore/gift-eval-migration
Aug 17, 2026
Merged

chore: migrate gift-eval module#369
AzulGarza merged 8 commits into
mainfrom
chore/gift-eval-migration

Conversation

@AzulGarza

Copy link
Copy Markdown
Member

this pr migrates the gift-eval module that lived in the repo. now users can directly access it using timecopilot-gift-eval

CopilotAI lite review requested due to automatic review settings August 14, 2026 19:26
@cursor

cursorBot commented Aug 14, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Migrates the in-repo timecopilot.gift_eval implementation to the standalone PyPI package timecopilot-gift-eval, updating dependencies and all internal references so users can access the functionality via timecopilot_gift_eval / the timecopilot[gift-eval] extra.

Changes:

  • Add timecopilot-gift-eval>=0.3.0 as an optional extra (gift-eval) and include it in dev/docs dependencies.
  • Remove the in-repo timecopilot/gift_eval implementation files and update tests/experiments/docs to import from timecopilot_gift_eval.
  • Update lockfile(s) and documentation to reflect the new distribution/import paths.

Reviewed changes

Copilot reviewed 15 out of 18 changed files in this pull request and generated 1 comment.

Show a summary per file
FileDescription
uv.lockAdds the gift-eval extra and locks timecopilot-gift-eval==0.3.0 into dev/docs and optional dependency metadata.
pyproject.tomlIntroduces gift-eval optional dependency and installs timecopilot-gift-eval for dev/docs environments.
timecopilot/gift_eval/utils.pyRemoved (module migrated out of repo).
timecopilot/gift_eval/gluonts_predictor.pyRemoved (module migrated out of repo).
timecopilot/gift_eval/eval.pyRemoved (module migrated out of repo).
timecopilot/gift_eval/data.pyRemoved (module migrated out of repo).
tests/gift_eval/test_gift_eval.pySwitches imports to timecopilot_gift_eval and cleans up test output.
tests/gift_eval/test_evaluation.pySwitches imports to timecopilot_gift_eval and adjusts which columns are compared to the reference results.
tests/gift_eval/conftest.pyUses GIFTEval from timecopilot_gift_eval for fixtures (data download + reference CSV caching).
mkdocs.ymlPreloads timecopilot_gift_eval for API docs generation.
experiments/gift-eval/src/run_timecopilot.pyUpdates imports to the external timecopilot_gift_eval package.
experiments/gift-eval/src/run_modal.pyUpdates dataset-term import to timecopilot_gift_eval.utils.
experiments/gift-eval/src/download_results.pyUpdates dataset-term import to timecopilot_gift_eval.utils.
experiments/gift-eval/pyproject.tomlRenames the experiments project and depends on timecopilot-gift-eval>=0.3.0.
docs/examples/gift-eval.ipynbUpdates installation instructions and imports/links to the new timecopilot_gift_eval path.
docs/api/gift-eval/gift-eval.mdDocuments the new standalone package and updates mkdocstrings targets to timecopilot_gift_eval.*.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment threadtests/gift_eval/test_evaluation.py Outdated

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 15 out of 18 changed files in this pull request and generated 1 comment.

Suppressed comments (2)

docs/examples/gift-eval.ipynb:791

  • Spelling: “mantainers” should be “maintainers”.
 "The TimeCopilot's [GIFT-Eval integration](https://timecopilot.dev/api/gift-eval/gift-eval/#timecopilot_gift_eval.eval.GIFTEval) was designed considering reproducibility as one of its main features. The library can replicate the official results provided by the mantainers of the benchmark for the [`SeasonalNaive`](https://huggingface.co/spaces/Salesforce/GIFT-Eval/tree/main/results/seasonal_naive) method. The following code replicates the Seasonal Naive performance for the datasets evaluated in this notebook. The reproducibility of the results for the rest of the datasets are tested continuously in the [library's repo](https://github.com/TimeCopilot/timecopilot/blob/main/tests/gift_eval/test_evaluation.py)."

docs/api/gift-eval/gift-eval.md:3

  • This page introduces the new timecopilot_gift_eval import path, but it doesn’t explicitly mention that earlier docs/examples used timecopilot.gift_eval. Adding a brief migration note here would reduce confusion for existing users following older snippets (e.g., changelogs still reference timecopilot.gift_eval).
GIFT-Eval integration lives in the standalone [`timecopilot-gift-eval`](https://pypi.org/project/timecopilot-gift-eval/) package on PyPI. Install it with TimeCopilot via:

Comment threadpyproject.toml
Comment on lines +119 to +121
gift-eval = [
"timecopilot-gift-eval>=0.3.0",
]

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should be fixed in the latest commit

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 17 out of 20 changed files in this pull request and generated no new comments.

Suppressed comments (3)

docs/examples/gift-eval.ipynb:56

  • The notebook installs timecopilot[gift-eval]>=0.0.22, but the gift-eval extra is introduced in this PR (and the repo currently reports version 0.0.30). This command will fail on PyPI until the first release that includes the gift-eval extra; update the minimum version accordingly (or drop the version pin).
 "%pip install \"timecopilot[gift-eval]>=0.0.22\""

docs/examples/gift-eval.ipynb:791

  • Typo in user-facing docs text: “mantainers” should be “maintainers”.
 "The TimeCopilot's [GIFT-Eval integration](https://timecopilot.dev/api/gift-eval/gift-eval/#timecopilot_gift_eval.eval.GIFTEval) was designed considering reproducibility as one of its main features. The library can replicate the official results provided by the mantainers of the benchmark for the [`SeasonalNaive`](https://huggingface.co/spaces/Salesforce/GIFT-Eval/tree/main/results/seasonal_naive) method. The following code replicates the Seasonal Naive performance for the datasets evaluated in this notebook. The reproducibility of the results for the rest of the datasets are tested continuously in the [library's repo](https://github.com/TimeCopilot/timecopilot/blob/main/tests/gift_eval/test_evaluation.py)."

docs/changelogs/index.md:5

  • Docs nav now lists v0.0.31, but pyproject.toml still declares version = "0.0.30". Unless a 0.0.31 release/version bump is included as part of this change, the docs site will advertise a version that doesn't match the package metadata. Consider bumping the project version (and any related release metadata) or holding off on adding the v0.0.31 changelog/nav entry until the release PR.
- [v0.0.31](v0.0.31.md)

@AzulGarza
AzulGarza merged commit dbba892 into mainAug 17, 2026
10 checks passed
@AzulGarza
AzulGarza deleted the chore/gift-eval-migration branch August 17, 2026 21:53
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@AzulGarza
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

chore: migrate gift-eval module - #369

Merged
AzulGarza merged 8 commits into
mainfrom
chore/gift-eval-migration
Aug 17, 2026
Merged

chore: migrate gift-eval module#369
AzulGarza merged 8 commits into
mainfrom
chore/gift-eval-migration

Conversation

@AzulGarza

Copy link
Copy Markdown
Member

this pr migrates the gift-eval module that lived in the repo. now users can directly access it using timecopilot-gift-eval

CopilotAI lite review requested due to automatic review settings August 14, 2026 19:26
@cursor

cursorBot commented Aug 14, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Migrates the in-repo timecopilot.gift_eval implementation to the standalone PyPI package timecopilot-gift-eval, updating dependencies and all internal references so users can access the functionality via timecopilot_gift_eval / the timecopilot[gift-eval] extra.

Changes:

  • Add timecopilot-gift-eval>=0.3.0 as an optional extra (gift-eval) and include it in dev/docs dependencies.
  • Remove the in-repo timecopilot/gift_eval implementation files and update tests/experiments/docs to import from timecopilot_gift_eval.
  • Update lockfile(s) and documentation to reflect the new distribution/import paths.

Reviewed changes

Copilot reviewed 15 out of 18 changed files in this pull request and generated 1 comment.

Show a summary per file
FileDescription
uv.lockAdds the gift-eval extra and locks timecopilot-gift-eval==0.3.0 into dev/docs and optional dependency metadata.
pyproject.tomlIntroduces gift-eval optional dependency and installs timecopilot-gift-eval for dev/docs environments.
timecopilot/gift_eval/utils.pyRemoved (module migrated out of repo).
timecopilot/gift_eval/gluonts_predictor.pyRemoved (module migrated out of repo).
timecopilot/gift_eval/eval.pyRemoved (module migrated out of repo).
timecopilot/gift_eval/data.pyRemoved (module migrated out of repo).
tests/gift_eval/test_gift_eval.pySwitches imports to timecopilot_gift_eval and cleans up test output.
tests/gift_eval/test_evaluation.pySwitches imports to timecopilot_gift_eval and adjusts which columns are compared to the reference results.
tests/gift_eval/conftest.pyUses GIFTEval from timecopilot_gift_eval for fixtures (data download + reference CSV caching).
mkdocs.ymlPreloads timecopilot_gift_eval for API docs generation.
experiments/gift-eval/src/run_timecopilot.pyUpdates imports to the external timecopilot_gift_eval package.
experiments/gift-eval/src/run_modal.pyUpdates dataset-term import to timecopilot_gift_eval.utils.
experiments/gift-eval/src/download_results.pyUpdates dataset-term import to timecopilot_gift_eval.utils.
experiments/gift-eval/pyproject.tomlRenames the experiments project and depends on timecopilot-gift-eval>=0.3.0.
docs/examples/gift-eval.ipynbUpdates installation instructions and imports/links to the new timecopilot_gift_eval path.
docs/api/gift-eval/gift-eval.mdDocuments the new standalone package and updates mkdocstrings targets to timecopilot_gift_eval.*.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment threadtests/gift_eval/test_evaluation.py Outdated

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 15 out of 18 changed files in this pull request and generated 1 comment.

Suppressed comments (2)

docs/examples/gift-eval.ipynb:791

  • Spelling: “mantainers” should be “maintainers”.
 "The TimeCopilot's [GIFT-Eval integration](https://timecopilot.dev/api/gift-eval/gift-eval/#timecopilot_gift_eval.eval.GIFTEval) was designed considering reproducibility as one of its main features. The library can replicate the official results provided by the mantainers of the benchmark for the [`SeasonalNaive`](https://huggingface.co/spaces/Salesforce/GIFT-Eval/tree/main/results/seasonal_naive) method. The following code replicates the Seasonal Naive performance for the datasets evaluated in this notebook. The reproducibility of the results for the rest of the datasets are tested continuously in the [library's repo](https://github.com/TimeCopilot/timecopilot/blob/main/tests/gift_eval/test_evaluation.py)."

docs/api/gift-eval/gift-eval.md:3

  • This page introduces the new timecopilot_gift_eval import path, but it doesn’t explicitly mention that earlier docs/examples used timecopilot.gift_eval. Adding a brief migration note here would reduce confusion for existing users following older snippets (e.g., changelogs still reference timecopilot.gift_eval).
GIFT-Eval integration lives in the standalone [`timecopilot-gift-eval`](https://pypi.org/project/timecopilot-gift-eval/) package on PyPI. Install it with TimeCopilot via:

Comment threadpyproject.toml
Comment on lines +119 to +121
gift-eval = [
"timecopilot-gift-eval>=0.3.0",
]

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should be fixed in the latest commit

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 17 out of 20 changed files in this pull request and generated no new comments.

Suppressed comments (3)

docs/examples/gift-eval.ipynb:56

  • The notebook installs timecopilot[gift-eval]>=0.0.22, but the gift-eval extra is introduced in this PR (and the repo currently reports version 0.0.30). This command will fail on PyPI until the first release that includes the gift-eval extra; update the minimum version accordingly (or drop the version pin).
 "%pip install \"timecopilot[gift-eval]>=0.0.22\""

docs/examples/gift-eval.ipynb:791

  • Typo in user-facing docs text: “mantainers” should be “maintainers”.
 "The TimeCopilot's [GIFT-Eval integration](https://timecopilot.dev/api/gift-eval/gift-eval/#timecopilot_gift_eval.eval.GIFTEval) was designed considering reproducibility as one of its main features. The library can replicate the official results provided by the mantainers of the benchmark for the [`SeasonalNaive`](https://huggingface.co/spaces/Salesforce/GIFT-Eval/tree/main/results/seasonal_naive) method. The following code replicates the Seasonal Naive performance for the datasets evaluated in this notebook. The reproducibility of the results for the rest of the datasets are tested continuously in the [library's repo](https://github.com/TimeCopilot/timecopilot/blob/main/tests/gift_eval/test_evaluation.py)."

docs/changelogs/index.md:5

  • Docs nav now lists v0.0.31, but pyproject.toml still declares version = "0.0.30". Unless a 0.0.31 release/version bump is included as part of this change, the docs site will advertise a version that doesn't match the package metadata. Consider bumping the project version (and any related release metadata) or holding off on adding the v0.0.31 changelog/nav entry until the release PR.
- [v0.0.31](v0.0.31.md)

@AzulGarza
AzulGarza merged commit dbba892 into mainAug 17, 2026
10 checks passed
@AzulGarza
AzulGarza deleted the chore/gift-eval-migration branch August 17, 2026 21:53
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@AzulGarza
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

chore: migrate gift-eval module - #369

Merged
AzulGarza merged 8 commits into
mainfrom
chore/gift-eval-migration
Aug 17, 2026
Merged

chore: migrate gift-eval module#369
AzulGarza merged 8 commits into
mainfrom
chore/gift-eval-migration

Conversation

@AzulGarza

Copy link
Copy Markdown
Member

this pr migrates the gift-eval module that lived in the repo. now users can directly access it using timecopilot-gift-eval

CopilotAI lite review requested due to automatic review settings August 14, 2026 19:26
@cursor

cursorBot commented Aug 14, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Migrates the in-repo timecopilot.gift_eval implementation to the standalone PyPI package timecopilot-gift-eval, updating dependencies and all internal references so users can access the functionality via timecopilot_gift_eval / the timecopilot[gift-eval] extra.

Changes:

  • Add timecopilot-gift-eval>=0.3.0 as an optional extra (gift-eval) and include it in dev/docs dependencies.
  • Remove the in-repo timecopilot/gift_eval implementation files and update tests/experiments/docs to import from timecopilot_gift_eval.
  • Update lockfile(s) and documentation to reflect the new distribution/import paths.

Reviewed changes

Copilot reviewed 15 out of 18 changed files in this pull request and generated 1 comment.

Show a summary per file
FileDescription
uv.lockAdds the gift-eval extra and locks timecopilot-gift-eval==0.3.0 into dev/docs and optional dependency metadata.
pyproject.tomlIntroduces gift-eval optional dependency and installs timecopilot-gift-eval for dev/docs environments.
timecopilot/gift_eval/utils.pyRemoved (module migrated out of repo).
timecopilot/gift_eval/gluonts_predictor.pyRemoved (module migrated out of repo).
timecopilot/gift_eval/eval.pyRemoved (module migrated out of repo).
timecopilot/gift_eval/data.pyRemoved (module migrated out of repo).
tests/gift_eval/test_gift_eval.pySwitches imports to timecopilot_gift_eval and cleans up test output.
tests/gift_eval/test_evaluation.pySwitches imports to timecopilot_gift_eval and adjusts which columns are compared to the reference results.
tests/gift_eval/conftest.pyUses GIFTEval from timecopilot_gift_eval for fixtures (data download + reference CSV caching).
mkdocs.ymlPreloads timecopilot_gift_eval for API docs generation.
experiments/gift-eval/src/run_timecopilot.pyUpdates imports to the external timecopilot_gift_eval package.
experiments/gift-eval/src/run_modal.pyUpdates dataset-term import to timecopilot_gift_eval.utils.
experiments/gift-eval/src/download_results.pyUpdates dataset-term import to timecopilot_gift_eval.utils.
experiments/gift-eval/pyproject.tomlRenames the experiments project and depends on timecopilot-gift-eval>=0.3.0.
docs/examples/gift-eval.ipynbUpdates installation instructions and imports/links to the new timecopilot_gift_eval path.
docs/api/gift-eval/gift-eval.mdDocuments the new standalone package and updates mkdocstrings targets to timecopilot_gift_eval.*.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment threadtests/gift_eval/test_evaluation.py Outdated

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 15 out of 18 changed files in this pull request and generated 1 comment.

Suppressed comments (2)

docs/examples/gift-eval.ipynb:791

  • Spelling: “mantainers” should be “maintainers”.
 "The TimeCopilot's [GIFT-Eval integration](https://timecopilot.dev/api/gift-eval/gift-eval/#timecopilot_gift_eval.eval.GIFTEval) was designed considering reproducibility as one of its main features. The library can replicate the official results provided by the mantainers of the benchmark for the [`SeasonalNaive`](https://huggingface.co/spaces/Salesforce/GIFT-Eval/tree/main/results/seasonal_naive) method. The following code replicates the Seasonal Naive performance for the datasets evaluated in this notebook. The reproducibility of the results for the rest of the datasets are tested continuously in the [library's repo](https://github.com/TimeCopilot/timecopilot/blob/main/tests/gift_eval/test_evaluation.py)."

docs/api/gift-eval/gift-eval.md:3

  • This page introduces the new timecopilot_gift_eval import path, but it doesn’t explicitly mention that earlier docs/examples used timecopilot.gift_eval. Adding a brief migration note here would reduce confusion for existing users following older snippets (e.g., changelogs still reference timecopilot.gift_eval).
GIFT-Eval integration lives in the standalone [`timecopilot-gift-eval`](https://pypi.org/project/timecopilot-gift-eval/) package on PyPI. Install it with TimeCopilot via:

Comment threadpyproject.toml
Comment on lines +119 to +121
gift-eval = [
"timecopilot-gift-eval>=0.3.0",
]

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should be fixed in the latest commit

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 17 out of 20 changed files in this pull request and generated no new comments.

Suppressed comments (3)

docs/examples/gift-eval.ipynb:56

  • The notebook installs timecopilot[gift-eval]>=0.0.22, but the gift-eval extra is introduced in this PR (and the repo currently reports version 0.0.30). This command will fail on PyPI until the first release that includes the gift-eval extra; update the minimum version accordingly (or drop the version pin).
 "%pip install \"timecopilot[gift-eval]>=0.0.22\""

docs/examples/gift-eval.ipynb:791

  • Typo in user-facing docs text: “mantainers” should be “maintainers”.
 "The TimeCopilot's [GIFT-Eval integration](https://timecopilot.dev/api/gift-eval/gift-eval/#timecopilot_gift_eval.eval.GIFTEval) was designed considering reproducibility as one of its main features. The library can replicate the official results provided by the mantainers of the benchmark for the [`SeasonalNaive`](https://huggingface.co/spaces/Salesforce/GIFT-Eval/tree/main/results/seasonal_naive) method. The following code replicates the Seasonal Naive performance for the datasets evaluated in this notebook. The reproducibility of the results for the rest of the datasets are tested continuously in the [library's repo](https://github.com/TimeCopilot/timecopilot/blob/main/tests/gift_eval/test_evaluation.py)."

docs/changelogs/index.md:5

  • Docs nav now lists v0.0.31, but pyproject.toml still declares version = "0.0.30". Unless a 0.0.31 release/version bump is included as part of this change, the docs site will advertise a version that doesn't match the package metadata. Consider bumping the project version (and any related release metadata) or holding off on adding the v0.0.31 changelog/nav entry until the release PR.
- [v0.0.31](v0.0.31.md)

@AzulGarza
AzulGarza merged commit dbba892 into mainAug 17, 2026
10 checks passed
@AzulGarza
AzulGarza deleted the chore/gift-eval-migration branch August 17, 2026 21:53
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@AzulGarza
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

chore: migrate gift-eval module - #369

Merged
AzulGarza merged 8 commits into
mainfrom
chore/gift-eval-migration
Aug 17, 2026
Merged

chore: migrate gift-eval module#369
AzulGarza merged 8 commits into
mainfrom
chore/gift-eval-migration

Conversation

@AzulGarza

Copy link
Copy Markdown
Member

this pr migrates the gift-eval module that lived in the repo. now users can directly access it using timecopilot-gift-eval

CopilotAI lite review requested due to automatic review settings August 14, 2026 19:26
@cursor

cursorBot commented Aug 14, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Migrates the in-repo timecopilot.gift_eval implementation to the standalone PyPI package timecopilot-gift-eval, updating dependencies and all internal references so users can access the functionality via timecopilot_gift_eval / the timecopilot[gift-eval] extra.

Changes:

  • Add timecopilot-gift-eval>=0.3.0 as an optional extra (gift-eval) and include it in dev/docs dependencies.
  • Remove the in-repo timecopilot/gift_eval implementation files and update tests/experiments/docs to import from timecopilot_gift_eval.
  • Update lockfile(s) and documentation to reflect the new distribution/import paths.

Reviewed changes

Copilot reviewed 15 out of 18 changed files in this pull request and generated 1 comment.

Show a summary per file
FileDescription
uv.lockAdds the gift-eval extra and locks timecopilot-gift-eval==0.3.0 into dev/docs and optional dependency metadata.
pyproject.tomlIntroduces gift-eval optional dependency and installs timecopilot-gift-eval for dev/docs environments.
timecopilot/gift_eval/utils.pyRemoved (module migrated out of repo).
timecopilot/gift_eval/gluonts_predictor.pyRemoved (module migrated out of repo).
timecopilot/gift_eval/eval.pyRemoved (module migrated out of repo).
timecopilot/gift_eval/data.pyRemoved (module migrated out of repo).
tests/gift_eval/test_gift_eval.pySwitches imports to timecopilot_gift_eval and cleans up test output.
tests/gift_eval/test_evaluation.pySwitches imports to timecopilot_gift_eval and adjusts which columns are compared to the reference results.
tests/gift_eval/conftest.pyUses GIFTEval from timecopilot_gift_eval for fixtures (data download + reference CSV caching).
mkdocs.ymlPreloads timecopilot_gift_eval for API docs generation.
experiments/gift-eval/src/run_timecopilot.pyUpdates imports to the external timecopilot_gift_eval package.
experiments/gift-eval/src/run_modal.pyUpdates dataset-term import to timecopilot_gift_eval.utils.
experiments/gift-eval/src/download_results.pyUpdates dataset-term import to timecopilot_gift_eval.utils.
experiments/gift-eval/pyproject.tomlRenames the experiments project and depends on timecopilot-gift-eval>=0.3.0.
docs/examples/gift-eval.ipynbUpdates installation instructions and imports/links to the new timecopilot_gift_eval path.
docs/api/gift-eval/gift-eval.mdDocuments the new standalone package and updates mkdocstrings targets to timecopilot_gift_eval.*.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment threadtests/gift_eval/test_evaluation.py Outdated

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 15 out of 18 changed files in this pull request and generated 1 comment.

Suppressed comments (2)

docs/examples/gift-eval.ipynb:791

  • Spelling: “mantainers” should be “maintainers”.
 "The TimeCopilot's [GIFT-Eval integration](https://timecopilot.dev/api/gift-eval/gift-eval/#timecopilot_gift_eval.eval.GIFTEval) was designed considering reproducibility as one of its main features. The library can replicate the official results provided by the mantainers of the benchmark for the [`SeasonalNaive`](https://huggingface.co/spaces/Salesforce/GIFT-Eval/tree/main/results/seasonal_naive) method. The following code replicates the Seasonal Naive performance for the datasets evaluated in this notebook. The reproducibility of the results for the rest of the datasets are tested continuously in the [library's repo](https://github.com/TimeCopilot/timecopilot/blob/main/tests/gift_eval/test_evaluation.py)."

docs/api/gift-eval/gift-eval.md:3

  • This page introduces the new timecopilot_gift_eval import path, but it doesn’t explicitly mention that earlier docs/examples used timecopilot.gift_eval. Adding a brief migration note here would reduce confusion for existing users following older snippets (e.g., changelogs still reference timecopilot.gift_eval).
GIFT-Eval integration lives in the standalone [`timecopilot-gift-eval`](https://pypi.org/project/timecopilot-gift-eval/) package on PyPI. Install it with TimeCopilot via:

Comment threadpyproject.toml
Comment on lines +119 to +121
gift-eval = [
"timecopilot-gift-eval>=0.3.0",
]

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should be fixed in the latest commit

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 17 out of 20 changed files in this pull request and generated no new comments.

Suppressed comments (3)

docs/examples/gift-eval.ipynb:56

  • The notebook installs timecopilot[gift-eval]>=0.0.22, but the gift-eval extra is introduced in this PR (and the repo currently reports version 0.0.30). This command will fail on PyPI until the first release that includes the gift-eval extra; update the minimum version accordingly (or drop the version pin).
 "%pip install \"timecopilot[gift-eval]>=0.0.22\""

docs/examples/gift-eval.ipynb:791

  • Typo in user-facing docs text: “mantainers” should be “maintainers”.
 "The TimeCopilot's [GIFT-Eval integration](https://timecopilot.dev/api/gift-eval/gift-eval/#timecopilot_gift_eval.eval.GIFTEval) was designed considering reproducibility as one of its main features. The library can replicate the official results provided by the mantainers of the benchmark for the [`SeasonalNaive`](https://huggingface.co/spaces/Salesforce/GIFT-Eval/tree/main/results/seasonal_naive) method. The following code replicates the Seasonal Naive performance for the datasets evaluated in this notebook. The reproducibility of the results for the rest of the datasets are tested continuously in the [library's repo](https://github.com/TimeCopilot/timecopilot/blob/main/tests/gift_eval/test_evaluation.py)."

docs/changelogs/index.md:5

  • Docs nav now lists v0.0.31, but pyproject.toml still declares version = "0.0.30". Unless a 0.0.31 release/version bump is included as part of this change, the docs site will advertise a version that doesn't match the package metadata. Consider bumping the project version (and any related release metadata) or holding off on adding the v0.0.31 changelog/nav entry until the release PR.
- [v0.0.31](v0.0.31.md)

@AzulGarza
AzulGarza merged commit dbba892 into mainAug 17, 2026
10 checks passed
@AzulGarza
AzulGarza deleted the chore/gift-eval-migration branch August 17, 2026 21:53
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@AzulGarza
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

chore: migrate gift-eval module - #369

Merged
AzulGarza merged 8 commits into
mainfrom
chore/gift-eval-migration
Aug 17, 2026
Merged

chore: migrate gift-eval module#369
AzulGarza merged 8 commits into
mainfrom
chore/gift-eval-migration

Conversation

@AzulGarza

Copy link
Copy Markdown
Member

this pr migrates the gift-eval module that lived in the repo. now users can directly access it using timecopilot-gift-eval

CopilotAI lite review requested due to automatic review settings August 14, 2026 19:26
@cursor

cursorBot commented Aug 14, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Migrates the in-repo timecopilot.gift_eval implementation to the standalone PyPI package timecopilot-gift-eval, updating dependencies and all internal references so users can access the functionality via timecopilot_gift_eval / the timecopilot[gift-eval] extra.

Changes:

  • Add timecopilot-gift-eval>=0.3.0 as an optional extra (gift-eval) and include it in dev/docs dependencies.
  • Remove the in-repo timecopilot/gift_eval implementation files and update tests/experiments/docs to import from timecopilot_gift_eval.
  • Update lockfile(s) and documentation to reflect the new distribution/import paths.

Reviewed changes

Copilot reviewed 15 out of 18 changed files in this pull request and generated 1 comment.

Show a summary per file
FileDescription
uv.lockAdds the gift-eval extra and locks timecopilot-gift-eval==0.3.0 into dev/docs and optional dependency metadata.
pyproject.tomlIntroduces gift-eval optional dependency and installs timecopilot-gift-eval for dev/docs environments.
timecopilot/gift_eval/utils.pyRemoved (module migrated out of repo).
timecopilot/gift_eval/gluonts_predictor.pyRemoved (module migrated out of repo).
timecopilot/gift_eval/eval.pyRemoved (module migrated out of repo).
timecopilot/gift_eval/data.pyRemoved (module migrated out of repo).
tests/gift_eval/test_gift_eval.pySwitches imports to timecopilot_gift_eval and cleans up test output.
tests/gift_eval/test_evaluation.pySwitches imports to timecopilot_gift_eval and adjusts which columns are compared to the reference results.
tests/gift_eval/conftest.pyUses GIFTEval from timecopilot_gift_eval for fixtures (data download + reference CSV caching).
mkdocs.ymlPreloads timecopilot_gift_eval for API docs generation.
experiments/gift-eval/src/run_timecopilot.pyUpdates imports to the external timecopilot_gift_eval package.
experiments/gift-eval/src/run_modal.pyUpdates dataset-term import to timecopilot_gift_eval.utils.
experiments/gift-eval/src/download_results.pyUpdates dataset-term import to timecopilot_gift_eval.utils.
experiments/gift-eval/pyproject.tomlRenames the experiments project and depends on timecopilot-gift-eval>=0.3.0.
docs/examples/gift-eval.ipynbUpdates installation instructions and imports/links to the new timecopilot_gift_eval path.
docs/api/gift-eval/gift-eval.mdDocuments the new standalone package and updates mkdocstrings targets to timecopilot_gift_eval.*.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment threadtests/gift_eval/test_evaluation.py Outdated

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 15 out of 18 changed files in this pull request and generated 1 comment.

Suppressed comments (2)

docs/examples/gift-eval.ipynb:791

  • Spelling: “mantainers” should be “maintainers”.
 "The TimeCopilot's [GIFT-Eval integration](https://timecopilot.dev/api/gift-eval/gift-eval/#timecopilot_gift_eval.eval.GIFTEval) was designed considering reproducibility as one of its main features. The library can replicate the official results provided by the mantainers of the benchmark for the [`SeasonalNaive`](https://huggingface.co/spaces/Salesforce/GIFT-Eval/tree/main/results/seasonal_naive) method. The following code replicates the Seasonal Naive performance for the datasets evaluated in this notebook. The reproducibility of the results for the rest of the datasets are tested continuously in the [library's repo](https://github.com/TimeCopilot/timecopilot/blob/main/tests/gift_eval/test_evaluation.py)."

docs/api/gift-eval/gift-eval.md:3

  • This page introduces the new timecopilot_gift_eval import path, but it doesn’t explicitly mention that earlier docs/examples used timecopilot.gift_eval. Adding a brief migration note here would reduce confusion for existing users following older snippets (e.g., changelogs still reference timecopilot.gift_eval).
GIFT-Eval integration lives in the standalone [`timecopilot-gift-eval`](https://pypi.org/project/timecopilot-gift-eval/) package on PyPI. Install it with TimeCopilot via:

Comment threadpyproject.toml
Comment on lines +119 to +121
gift-eval = [
"timecopilot-gift-eval>=0.3.0",
]

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should be fixed in the latest commit

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 17 out of 20 changed files in this pull request and generated no new comments.

Suppressed comments (3)

docs/examples/gift-eval.ipynb:56

  • The notebook installs timecopilot[gift-eval]>=0.0.22, but the gift-eval extra is introduced in this PR (and the repo currently reports version 0.0.30). This command will fail on PyPI until the first release that includes the gift-eval extra; update the minimum version accordingly (or drop the version pin).
 "%pip install \"timecopilot[gift-eval]>=0.0.22\""

docs/examples/gift-eval.ipynb:791

  • Typo in user-facing docs text: “mantainers” should be “maintainers”.
 "The TimeCopilot's [GIFT-Eval integration](https://timecopilot.dev/api/gift-eval/gift-eval/#timecopilot_gift_eval.eval.GIFTEval) was designed considering reproducibility as one of its main features. The library can replicate the official results provided by the mantainers of the benchmark for the [`SeasonalNaive`](https://huggingface.co/spaces/Salesforce/GIFT-Eval/tree/main/results/seasonal_naive) method. The following code replicates the Seasonal Naive performance for the datasets evaluated in this notebook. The reproducibility of the results for the rest of the datasets are tested continuously in the [library's repo](https://github.com/TimeCopilot/timecopilot/blob/main/tests/gift_eval/test_evaluation.py)."

docs/changelogs/index.md:5

  • Docs nav now lists v0.0.31, but pyproject.toml still declares version = "0.0.30". Unless a 0.0.31 release/version bump is included as part of this change, the docs site will advertise a version that doesn't match the package metadata. Consider bumping the project version (and any related release metadata) or holding off on adding the v0.0.31 changelog/nav entry until the release PR.
- [v0.0.31](v0.0.31.md)

@AzulGarza
AzulGarza merged commit dbba892 into mainAug 17, 2026
10 checks passed
@AzulGarza
AzulGarza deleted the chore/gift-eval-migration branch August 17, 2026 21:53
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@AzulGarza
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

chore: migrate gift-eval module - #369

Merged
AzulGarza merged 8 commits into
mainfrom
chore/gift-eval-migration
Aug 17, 2026
Merged

chore: migrate gift-eval module#369
AzulGarza merged 8 commits into
mainfrom
chore/gift-eval-migration

Conversation

@AzulGarza

Copy link
Copy Markdown
Member

this pr migrates the gift-eval module that lived in the repo. now users can directly access it using timecopilot-gift-eval

CopilotAI lite review requested due to automatic review settings August 14, 2026 19:26
@cursor

cursorBot commented Aug 14, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Migrates the in-repo timecopilot.gift_eval implementation to the standalone PyPI package timecopilot-gift-eval, updating dependencies and all internal references so users can access the functionality via timecopilot_gift_eval / the timecopilot[gift-eval] extra.

Changes:

  • Add timecopilot-gift-eval>=0.3.0 as an optional extra (gift-eval) and include it in dev/docs dependencies.
  • Remove the in-repo timecopilot/gift_eval implementation files and update tests/experiments/docs to import from timecopilot_gift_eval.
  • Update lockfile(s) and documentation to reflect the new distribution/import paths.

Reviewed changes

Copilot reviewed 15 out of 18 changed files in this pull request and generated 1 comment.

Show a summary per file
FileDescription
uv.lockAdds the gift-eval extra and locks timecopilot-gift-eval==0.3.0 into dev/docs and optional dependency metadata.
pyproject.tomlIntroduces gift-eval optional dependency and installs timecopilot-gift-eval for dev/docs environments.
timecopilot/gift_eval/utils.pyRemoved (module migrated out of repo).
timecopilot/gift_eval/gluonts_predictor.pyRemoved (module migrated out of repo).
timecopilot/gift_eval/eval.pyRemoved (module migrated out of repo).
timecopilot/gift_eval/data.pyRemoved (module migrated out of repo).
tests/gift_eval/test_gift_eval.pySwitches imports to timecopilot_gift_eval and cleans up test output.
tests/gift_eval/test_evaluation.pySwitches imports to timecopilot_gift_eval and adjusts which columns are compared to the reference results.
tests/gift_eval/conftest.pyUses GIFTEval from timecopilot_gift_eval for fixtures (data download + reference CSV caching).
mkdocs.ymlPreloads timecopilot_gift_eval for API docs generation.
experiments/gift-eval/src/run_timecopilot.pyUpdates imports to the external timecopilot_gift_eval package.
experiments/gift-eval/src/run_modal.pyUpdates dataset-term import to timecopilot_gift_eval.utils.
experiments/gift-eval/src/download_results.pyUpdates dataset-term import to timecopilot_gift_eval.utils.
experiments/gift-eval/pyproject.tomlRenames the experiments project and depends on timecopilot-gift-eval>=0.3.0.
docs/examples/gift-eval.ipynbUpdates installation instructions and imports/links to the new timecopilot_gift_eval path.
docs/api/gift-eval/gift-eval.mdDocuments the new standalone package and updates mkdocstrings targets to timecopilot_gift_eval.*.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment threadtests/gift_eval/test_evaluation.py Outdated

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 15 out of 18 changed files in this pull request and generated 1 comment.

Suppressed comments (2)

docs/examples/gift-eval.ipynb:791

  • Spelling: “mantainers” should be “maintainers”.
 "The TimeCopilot's [GIFT-Eval integration](https://timecopilot.dev/api/gift-eval/gift-eval/#timecopilot_gift_eval.eval.GIFTEval) was designed considering reproducibility as one of its main features. The library can replicate the official results provided by the mantainers of the benchmark for the [`SeasonalNaive`](https://huggingface.co/spaces/Salesforce/GIFT-Eval/tree/main/results/seasonal_naive) method. The following code replicates the Seasonal Naive performance for the datasets evaluated in this notebook. The reproducibility of the results for the rest of the datasets are tested continuously in the [library's repo](https://github.com/TimeCopilot/timecopilot/blob/main/tests/gift_eval/test_evaluation.py)."

docs/api/gift-eval/gift-eval.md:3

  • This page introduces the new timecopilot_gift_eval import path, but it doesn’t explicitly mention that earlier docs/examples used timecopilot.gift_eval. Adding a brief migration note here would reduce confusion for existing users following older snippets (e.g., changelogs still reference timecopilot.gift_eval).
GIFT-Eval integration lives in the standalone [`timecopilot-gift-eval`](https://pypi.org/project/timecopilot-gift-eval/) package on PyPI. Install it with TimeCopilot via:

Comment threadpyproject.toml
Comment on lines +119 to +121
gift-eval = [
"timecopilot-gift-eval>=0.3.0",
]

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should be fixed in the latest commit

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 17 out of 20 changed files in this pull request and generated no new comments.

Suppressed comments (3)

docs/examples/gift-eval.ipynb:56

  • The notebook installs timecopilot[gift-eval]>=0.0.22, but the gift-eval extra is introduced in this PR (and the repo currently reports version 0.0.30). This command will fail on PyPI until the first release that includes the gift-eval extra; update the minimum version accordingly (or drop the version pin).
 "%pip install \"timecopilot[gift-eval]>=0.0.22\""

docs/examples/gift-eval.ipynb:791

  • Typo in user-facing docs text: “mantainers” should be “maintainers”.
 "The TimeCopilot's [GIFT-Eval integration](https://timecopilot.dev/api/gift-eval/gift-eval/#timecopilot_gift_eval.eval.GIFTEval) was designed considering reproducibility as one of its main features. The library can replicate the official results provided by the mantainers of the benchmark for the [`SeasonalNaive`](https://huggingface.co/spaces/Salesforce/GIFT-Eval/tree/main/results/seasonal_naive) method. The following code replicates the Seasonal Naive performance for the datasets evaluated in this notebook. The reproducibility of the results for the rest of the datasets are tested continuously in the [library's repo](https://github.com/TimeCopilot/timecopilot/blob/main/tests/gift_eval/test_evaluation.py)."

docs/changelogs/index.md:5

  • Docs nav now lists v0.0.31, but pyproject.toml still declares version = "0.0.30". Unless a 0.0.31 release/version bump is included as part of this change, the docs site will advertise a version that doesn't match the package metadata. Consider bumping the project version (and any related release metadata) or holding off on adding the v0.0.31 changelog/nav entry until the release PR.
- [v0.0.31](v0.0.31.md)

@AzulGarza
AzulGarza merged commit dbba892 into mainAug 17, 2026
10 checks passed
@AzulGarza
AzulGarza deleted the chore/gift-eval-migration branch August 17, 2026 21:53
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@AzulGarza
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

chore: migrate gift-eval module - #369

Merged
AzulGarza merged 8 commits into
mainfrom
chore/gift-eval-migration
Aug 17, 2026
Merged

chore: migrate gift-eval module#369
AzulGarza merged 8 commits into
mainfrom
chore/gift-eval-migration

Conversation

@AzulGarza

Copy link
Copy Markdown
Member

this pr migrates the gift-eval module that lived in the repo. now users can directly access it using timecopilot-gift-eval

CopilotAI lite review requested due to automatic review settings August 14, 2026 19:26
@cursor

cursorBot commented Aug 14, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Migrates the in-repo timecopilot.gift_eval implementation to the standalone PyPI package timecopilot-gift-eval, updating dependencies and all internal references so users can access the functionality via timecopilot_gift_eval / the timecopilot[gift-eval] extra.

Changes:

  • Add timecopilot-gift-eval>=0.3.0 as an optional extra (gift-eval) and include it in dev/docs dependencies.
  • Remove the in-repo timecopilot/gift_eval implementation files and update tests/experiments/docs to import from timecopilot_gift_eval.
  • Update lockfile(s) and documentation to reflect the new distribution/import paths.

Reviewed changes

Copilot reviewed 15 out of 18 changed files in this pull request and generated 1 comment.

Show a summary per file
FileDescription
uv.lockAdds the gift-eval extra and locks timecopilot-gift-eval==0.3.0 into dev/docs and optional dependency metadata.
pyproject.tomlIntroduces gift-eval optional dependency and installs timecopilot-gift-eval for dev/docs environments.
timecopilot/gift_eval/utils.pyRemoved (module migrated out of repo).
timecopilot/gift_eval/gluonts_predictor.pyRemoved (module migrated out of repo).
timecopilot/gift_eval/eval.pyRemoved (module migrated out of repo).
timecopilot/gift_eval/data.pyRemoved (module migrated out of repo).
tests/gift_eval/test_gift_eval.pySwitches imports to timecopilot_gift_eval and cleans up test output.
tests/gift_eval/test_evaluation.pySwitches imports to timecopilot_gift_eval and adjusts which columns are compared to the reference results.
tests/gift_eval/conftest.pyUses GIFTEval from timecopilot_gift_eval for fixtures (data download + reference CSV caching).
mkdocs.ymlPreloads timecopilot_gift_eval for API docs generation.
experiments/gift-eval/src/run_timecopilot.pyUpdates imports to the external timecopilot_gift_eval package.
experiments/gift-eval/src/run_modal.pyUpdates dataset-term import to timecopilot_gift_eval.utils.
experiments/gift-eval/src/download_results.pyUpdates dataset-term import to timecopilot_gift_eval.utils.
experiments/gift-eval/pyproject.tomlRenames the experiments project and depends on timecopilot-gift-eval>=0.3.0.
docs/examples/gift-eval.ipynbUpdates installation instructions and imports/links to the new timecopilot_gift_eval path.
docs/api/gift-eval/gift-eval.mdDocuments the new standalone package and updates mkdocstrings targets to timecopilot_gift_eval.*.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment threadtests/gift_eval/test_evaluation.py Outdated

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 15 out of 18 changed files in this pull request and generated 1 comment.

Suppressed comments (2)

docs/examples/gift-eval.ipynb:791

  • Spelling: “mantainers” should be “maintainers”.
 "The TimeCopilot's [GIFT-Eval integration](https://timecopilot.dev/api/gift-eval/gift-eval/#timecopilot_gift_eval.eval.GIFTEval) was designed considering reproducibility as one of its main features. The library can replicate the official results provided by the mantainers of the benchmark for the [`SeasonalNaive`](https://huggingface.co/spaces/Salesforce/GIFT-Eval/tree/main/results/seasonal_naive) method. The following code replicates the Seasonal Naive performance for the datasets evaluated in this notebook. The reproducibility of the results for the rest of the datasets are tested continuously in the [library's repo](https://github.com/TimeCopilot/timecopilot/blob/main/tests/gift_eval/test_evaluation.py)."

docs/api/gift-eval/gift-eval.md:3

  • This page introduces the new timecopilot_gift_eval import path, but it doesn’t explicitly mention that earlier docs/examples used timecopilot.gift_eval. Adding a brief migration note here would reduce confusion for existing users following older snippets (e.g., changelogs still reference timecopilot.gift_eval).
GIFT-Eval integration lives in the standalone [`timecopilot-gift-eval`](https://pypi.org/project/timecopilot-gift-eval/) package on PyPI. Install it with TimeCopilot via:

Comment threadpyproject.toml
Comment on lines +119 to +121
gift-eval = [
"timecopilot-gift-eval>=0.3.0",
]

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should be fixed in the latest commit

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 17 out of 20 changed files in this pull request and generated no new comments.

Suppressed comments (3)

docs/examples/gift-eval.ipynb:56

  • The notebook installs timecopilot[gift-eval]>=0.0.22, but the gift-eval extra is introduced in this PR (and the repo currently reports version 0.0.30). This command will fail on PyPI until the first release that includes the gift-eval extra; update the minimum version accordingly (or drop the version pin).
 "%pip install \"timecopilot[gift-eval]>=0.0.22\""

docs/examples/gift-eval.ipynb:791

  • Typo in user-facing docs text: “mantainers” should be “maintainers”.
 "The TimeCopilot's [GIFT-Eval integration](https://timecopilot.dev/api/gift-eval/gift-eval/#timecopilot_gift_eval.eval.GIFTEval) was designed considering reproducibility as one of its main features. The library can replicate the official results provided by the mantainers of the benchmark for the [`SeasonalNaive`](https://huggingface.co/spaces/Salesforce/GIFT-Eval/tree/main/results/seasonal_naive) method. The following code replicates the Seasonal Naive performance for the datasets evaluated in this notebook. The reproducibility of the results for the rest of the datasets are tested continuously in the [library's repo](https://github.com/TimeCopilot/timecopilot/blob/main/tests/gift_eval/test_evaluation.py)."

docs/changelogs/index.md:5

  • Docs nav now lists v0.0.31, but pyproject.toml still declares version = "0.0.30". Unless a 0.0.31 release/version bump is included as part of this change, the docs site will advertise a version that doesn't match the package metadata. Consider bumping the project version (and any related release metadata) or holding off on adding the v0.0.31 changelog/nav entry until the release PR.
- [v0.0.31](v0.0.31.md)

@AzulGarza
AzulGarza merged commit dbba892 into mainAug 17, 2026
10 checks passed
@AzulGarza
AzulGarza deleted the chore/gift-eval-migration branch August 17, 2026 21:53
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@AzulGarza
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

chore: migrate gift-eval module - #369

Merged
AzulGarza merged 8 commits into
mainfrom
chore/gift-eval-migration
Aug 17, 2026
Merged

chore: migrate gift-eval module#369
AzulGarza merged 8 commits into
mainfrom
chore/gift-eval-migration

Conversation

@AzulGarza

Copy link
Copy Markdown
Member

this pr migrates the gift-eval module that lived in the repo. now users can directly access it using timecopilot-gift-eval

CopilotAI lite review requested due to automatic review settings August 14, 2026 19:26
@cursor

cursorBot commented Aug 14, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Migrates the in-repo timecopilot.gift_eval implementation to the standalone PyPI package timecopilot-gift-eval, updating dependencies and all internal references so users can access the functionality via timecopilot_gift_eval / the timecopilot[gift-eval] extra.

Changes:

  • Add timecopilot-gift-eval>=0.3.0 as an optional extra (gift-eval) and include it in dev/docs dependencies.
  • Remove the in-repo timecopilot/gift_eval implementation files and update tests/experiments/docs to import from timecopilot_gift_eval.
  • Update lockfile(s) and documentation to reflect the new distribution/import paths.

Reviewed changes

Copilot reviewed 15 out of 18 changed files in this pull request and generated 1 comment.

Show a summary per file
FileDescription
uv.lockAdds the gift-eval extra and locks timecopilot-gift-eval==0.3.0 into dev/docs and optional dependency metadata.
pyproject.tomlIntroduces gift-eval optional dependency and installs timecopilot-gift-eval for dev/docs environments.
timecopilot/gift_eval/utils.pyRemoved (module migrated out of repo).
timecopilot/gift_eval/gluonts_predictor.pyRemoved (module migrated out of repo).
timecopilot/gift_eval/eval.pyRemoved (module migrated out of repo).
timecopilot/gift_eval/data.pyRemoved (module migrated out of repo).
tests/gift_eval/test_gift_eval.pySwitches imports to timecopilot_gift_eval and cleans up test output.
tests/gift_eval/test_evaluation.pySwitches imports to timecopilot_gift_eval and adjusts which columns are compared to the reference results.
tests/gift_eval/conftest.pyUses GIFTEval from timecopilot_gift_eval for fixtures (data download + reference CSV caching).
mkdocs.ymlPreloads timecopilot_gift_eval for API docs generation.
experiments/gift-eval/src/run_timecopilot.pyUpdates imports to the external timecopilot_gift_eval package.
experiments/gift-eval/src/run_modal.pyUpdates dataset-term import to timecopilot_gift_eval.utils.
experiments/gift-eval/src/download_results.pyUpdates dataset-term import to timecopilot_gift_eval.utils.
experiments/gift-eval/pyproject.tomlRenames the experiments project and depends on timecopilot-gift-eval>=0.3.0.
docs/examples/gift-eval.ipynbUpdates installation instructions and imports/links to the new timecopilot_gift_eval path.
docs/api/gift-eval/gift-eval.mdDocuments the new standalone package and updates mkdocstrings targets to timecopilot_gift_eval.*.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment threadtests/gift_eval/test_evaluation.py Outdated

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 15 out of 18 changed files in this pull request and generated 1 comment.

Suppressed comments (2)

docs/examples/gift-eval.ipynb:791

  • Spelling: “mantainers” should be “maintainers”.
 "The TimeCopilot's [GIFT-Eval integration](https://timecopilot.dev/api/gift-eval/gift-eval/#timecopilot_gift_eval.eval.GIFTEval) was designed considering reproducibility as one of its main features. The library can replicate the official results provided by the mantainers of the benchmark for the [`SeasonalNaive`](https://huggingface.co/spaces/Salesforce/GIFT-Eval/tree/main/results/seasonal_naive) method. The following code replicates the Seasonal Naive performance for the datasets evaluated in this notebook. The reproducibility of the results for the rest of the datasets are tested continuously in the [library's repo](https://github.com/TimeCopilot/timecopilot/blob/main/tests/gift_eval/test_evaluation.py)."

docs/api/gift-eval/gift-eval.md:3

  • This page introduces the new timecopilot_gift_eval import path, but it doesn’t explicitly mention that earlier docs/examples used timecopilot.gift_eval. Adding a brief migration note here would reduce confusion for existing users following older snippets (e.g., changelogs still reference timecopilot.gift_eval).
GIFT-Eval integration lives in the standalone [`timecopilot-gift-eval`](https://pypi.org/project/timecopilot-gift-eval/) package on PyPI. Install it with TimeCopilot via:

Comment threadpyproject.toml
Comment on lines +119 to +121
gift-eval = [
"timecopilot-gift-eval>=0.3.0",
]

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should be fixed in the latest commit

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 17 out of 20 changed files in this pull request and generated no new comments.

Suppressed comments (3)

docs/examples/gift-eval.ipynb:56

  • The notebook installs timecopilot[gift-eval]>=0.0.22, but the gift-eval extra is introduced in this PR (and the repo currently reports version 0.0.30). This command will fail on PyPI until the first release that includes the gift-eval extra; update the minimum version accordingly (or drop the version pin).
 "%pip install \"timecopilot[gift-eval]>=0.0.22\""

docs/examples/gift-eval.ipynb:791

  • Typo in user-facing docs text: “mantainers” should be “maintainers”.
 "The TimeCopilot's [GIFT-Eval integration](https://timecopilot.dev/api/gift-eval/gift-eval/#timecopilot_gift_eval.eval.GIFTEval) was designed considering reproducibility as one of its main features. The library can replicate the official results provided by the mantainers of the benchmark for the [`SeasonalNaive`](https://huggingface.co/spaces/Salesforce/GIFT-Eval/tree/main/results/seasonal_naive) method. The following code replicates the Seasonal Naive performance for the datasets evaluated in this notebook. The reproducibility of the results for the rest of the datasets are tested continuously in the [library's repo](https://github.com/TimeCopilot/timecopilot/blob/main/tests/gift_eval/test_evaluation.py)."

docs/changelogs/index.md:5

  • Docs nav now lists v0.0.31, but pyproject.toml still declares version = "0.0.30". Unless a 0.0.31 release/version bump is included as part of this change, the docs site will advertise a version that doesn't match the package metadata. Consider bumping the project version (and any related release metadata) or holding off on adding the v0.0.31 changelog/nav entry until the release PR.
- [v0.0.31](v0.0.31.md)

@AzulGarza
AzulGarza merged commit dbba892 into mainAug 17, 2026
10 checks passed
@AzulGarza
AzulGarza deleted the chore/gift-eval-migration branch August 17, 2026 21:53
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@AzulGarza