Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: use TypeVar for dataframes #443

Merged
merged 4 commits into from
Aug 19, 2024
Merged

feat: use TypeVar for dataframes #443

merged 4 commits into from
Aug 19, 2024

Conversation

jmoralez
Copy link
Member

@jmoralez jmoralez commented Aug 7, 2024

Changes the type hints for the input and output dataframes from using a type union to a typevar. The main benefit of this is that this tells the type checkers that whatever the input of a function was (restricted to some dataframe types) the output will be of the same type, which helps a lot with IDES and type checkers, for example:

Pandas:
Screenshot from 2024-08-16 13-41-54

Polars:
Screenshot from 2024-08-16 13-42-25

Also packages the py.typed file, which was already there but wasn't being included in the distribution. This tells type checkers that the package has type annotations.

Copy link

Check out this pull request on  ReviewNB

See visual diffs & provide feedback on Jupyter Notebooks.


Powered by ReviewNB

Copy link
Contributor

Experiment Results

Experiment 1: air-passengers

Description:

variable experiment
h 12
season_length 12
freq MS
level None
n_windows 1

Results:

metric timegpt-1 timegpt-1-long-horizon SeasonalNaive Naive
mae 12.6793 11.0623 47.8333 76
mape 0.027 0.0232 0.0999 0.1425
mse 213.936 199.132 2571.33 10604.2
total_time 1.4685 2.218 0.0064 0.004

Plot:

Experiment 2: air-passengers

Description:

variable experiment
h 24
season_length 12
freq MS
level None
n_windows 1

Results:

metric timegpt-1 timegpt-1-long-horizon SeasonalNaive Naive
mae 58.1031 58.4587 71.25 115.25
mape 0.1257 0.1267 0.1552 0.2358
mse 4040.21 4110.79 5928.17 18859.2
total_time 0.8624 0.8481 0.0046 0.0041

Plot:

Experiment 3: electricity-multiple-series

Description:

variable experiment
h 24
season_length 24
freq H
level None
n_windows 1

Results:

metric timegpt-1 timegpt-1-long-horizon SeasonalNaive Naive
mae 178.293 268.121 269.23 1331.02
mape 0.0234 0.0311 0.0304 0.1692
mse 121588 219457 213677 4.68961e+06
total_time 0.8393 0.939 0.0053 0.0049

Plot:

Experiment 4: electricity-multiple-series

Description:

variable experiment
h 168
season_length 24
freq H
level None
n_windows 1

Results:

metric timegpt-1 timegpt-1-long-horizon SeasonalNaive Naive
mae 465.532 346.984 398.956 1119.26
mape 0.062 0.0437 0.0512 0.1583
mse 835120 403787 656723 3.17316e+06
total_time 1.5409 0.8694 0.0057 0.0051

Plot:

Experiment 5: electricity-multiple-series

Description:

variable experiment
h 336
season_length 24
freq H
level None
n_windows 1

Results:

metric timegpt-1 timegpt-1-long-horizon SeasonalNaive Naive
mae 558.649 459.769 602.926 1340.95
mape 0.0697 0.0566 0.0787 0.17
mse 1.22721e+06 739135 1.61572e+06 6.04619e+06
total_time 1.1095 2.574 0.0057 0.0051

Plot:

@Nixtla Nixtla deleted a comment from github-actions bot Aug 16, 2024
@Nixtla Nixtla deleted a comment from github-actions bot Aug 16, 2024
@jmoralez jmoralez marked this pull request as ready for review August 16, 2024 19:46
setup.py Outdated
@@ -34,6 +34,8 @@
long_description_content_type="text/markdown",
url="https://github.com/Nixtla/nixtla",
packages=setuptools.find_packages(exclude=["action_files"]),
include_package_data=True,
package_data={'nixtla': ['py.typed']},
Copy link
Member

Choose a reason for hiding this comment

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

cool

Copy link
Member Author

Choose a reason for hiding this comment

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

Seems that I lied haha. It's already being packaged (0.5.2 logs), I'll remove this.

@jmoralez jmoralez changed the title feat: use TypeVar for dataframes and package py.typed feat: use TypeVar for dataframes Aug 19, 2024
@jmoralez jmoralez merged commit 8817e3b into main Aug 19, 2024
1 check passed
@jmoralez jmoralez deleted the types-enh branch August 19, 2024 18:38
Sign up for free to 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