Skip to content

feat(skore-hub-project): Reduce put time#2114

Draft
thomass-dev wants to merge 9 commits intomainfrom
skore-hub-project-use-directly-report-hash
Draft

feat(skore-hub-project): Reduce put time#2114
thomass-dev wants to merge 9 commits intomainfrom
skore-hub-project-use-directly-report-hash

Conversation

@thomass-dev
Copy link
Collaborator

@thomass-dev thomass-dev commented Oct 30, 2025

Partially addresses #2140:

  • Use the hash generated by skore to upload a report
  • Thread the compute of report media
    • All media are computed in "parallel", divided in chunk of ~10mb and sent to the upload queue
    • The upload queue is emptied in "parallel" 6 chunks of 6, to avoid flooding the hub

@thomass-dev thomass-dev self-assigned this Oct 31, 2025
@thomass-dev thomass-dev force-pushed the skore-hub-project-use-directly-report-hash branch from 8e90401 to 15073af Compare November 4, 2025 08:41
@thomass-dev thomass-dev mentioned this pull request Nov 5, 2025
6 tasks
@thomass-dev thomass-dev force-pushed the skore-hub-project-use-directly-report-hash branch 4 times, most recently from 7455dbc to bace8e0 Compare November 20, 2025 11:20
@thomass-dev thomass-dev force-pushed the skore-hub-project-use-directly-report-hash branch 3 times, most recently from 106d773 to 521a01b Compare November 26, 2025 16:05
@github-actions
Copy link
Contributor

github-actions bot commented Nov 26, 2025

Coverage

Coverage Report for skore-hub-project/
FileStmtsMissCoverMissing
skore-hub-project/src/skore_hub_project
   __init__.py23195%40
   protocol.py410100% 
skore-hub-project/src/skore_hub_project/artifact
   __init__.py00100% 
   artifact.py47197%87
   upload.py30486%143, 145–146, 148
skore-hub-project/src/skore_hub_project/artifact/media
   __init__.py50100% 
   data.py230100% 
   feature_importance.py51198%65
   media.py240100% 
   model.py120100% 
   performance.py490100% 
skore-hub-project/src/skore_hub_project/artifact/pickle
   __init__.py20100% 
   pickle.py25196%51
skore-hub-project/src/skore_hub_project/authentication
   __init__.py00100% 
   login.py660100% 
   logout.py40100% 
   token.py240100% 
   uri.py200100% 
skore-hub-project/src/skore_hub_project/client
   __init__.py00100% 
   client.py680100% 
skore-hub-project/src/skore_hub_project/metric
   __init__.py100100% 
   accuracy.py350100% 
   brier_score.py350100% 
   log_loss.py350100% 
   metric.py55492%38, 77–78, 84
   precision.py530100% 
   r2.py350100% 
   recall.py550100% 
   rmse.py350100% 
   roc_auc.py350100% 
   timing.py76494%45–46, 104–105
skore-hub-project/src/skore_hub_project/project
   __init__.py00100% 
   project.py110397%242, 323, 353
skore-hub-project/src/skore_hub_project/report
   __init__.py30100% 
   cross_validation_report.py730100% 
   estimator_report.py100100% 
   report.py680100% 
TOTAL12371998% 

Tests Skipped Failures Errors Time
350 0 💤 0 ❌ 0 🔥 1m 50s ⏱️

@thomass-dev thomass-dev changed the base branch from main to skore-hub-project-thread-metrics-computing December 30, 2025 12:33
Base automatically changed from skore-hub-project-thread-metrics-computing to main January 6, 2026 07:49
@thomass-dev thomass-dev changed the title feat(skore-hub-project): Use the hash generated by skore to upload a report feat(skore-hub-project): Reduce put time Jan 12, 2026
@thomass-dev thomass-dev force-pushed the skore-hub-project-use-directly-report-hash branch 3 times, most recently from 57e85f9 to 06da771 Compare January 13, 2026 16:01
@thomass-dev thomass-dev marked this pull request as ready for review January 13, 2026 16:09
@thomass-dev thomass-dev requested a review from rouk1 January 13, 2026 16:10
@thomass-dev thomass-dev marked this pull request as draft January 13, 2026 16:14
@thomass-dev thomass-dev force-pushed the skore-hub-project-use-directly-report-hash branch 2 times, most recently from 06da771 to 89d6311 Compare January 14, 2026 14:51
@thomass-dev thomass-dev force-pushed the skore-hub-project-use-directly-report-hash branch from 47a69b6 to 741fff7 Compare January 15, 2026 15:14
@thomass-dev thomass-dev force-pushed the skore-hub-project-use-directly-report-hash branch from d800e62 to f34ac10 Compare January 16, 2026 13:57
@thomass-dev
Copy link
Collaborator Author

Let's pair review on this PR @rouk1 .

@thomass-dev thomass-dev force-pushed the skore-hub-project-use-directly-report-hash branch from 7e11fca to eb9ec15 Compare January 19, 2026 11:22
@thomass-dev thomass-dev force-pushed the skore-hub-project-use-directly-report-hash branch from eb9ec15 to 834af3d Compare January 20, 2026 09:15
@thomass-dev thomass-dev force-pushed the skore-hub-project-use-directly-report-hash branch from ff6fd42 to cb61cbd Compare January 20, 2026 09:39
@thomass-dev thomass-dev force-pushed the skore-hub-project-use-directly-report-hash branch from cb61cbd to 78e1510 Compare January 20, 2026 09:48
Copy link
Contributor

@rouk1 rouk1 left a comment

Choose a reason for hiding this comment

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

This is really cool and works quite well. Yet I have a few feedbacks.

Progress title feels a bit like an error to me. Probably because of the red color.

Image Image


from ..project.project import Project

from httpx import Client as httpx_Client
Copy link
Contributor

Choose a reason for hiding this comment

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

Camel_snake_Case feels odd.

Suggested change
from httpx import Client as httpx_Client
from httpx import Client as HttpxClient

Client() as standard_client,
ThreadPoolExecutor() as pool,
):
assert filepath.stat().st_size, "`filepath` must not be empty"
Copy link
Contributor

Choose a reason for hiding this comment

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

Should the size be set in a variable and reused in the with statement below ?

]
xfail_strict = true
filterwarnings = ["error"]
filterwarnings = [
Copy link
Contributor

Choose a reason for hiding this comment

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

This seems to be ignored in my setup.
I use interactive views in cursor.

Image

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

This is only for pytest.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

But this warning is not a normal warning, i'm trying to fix it.

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