-
Notifications
You must be signed in to change notification settings - Fork 1
[pip-rating The Lord of the Words] Error ISO dateformat with Python 3.10 and previous versions #46
Description
Command that causes the issue
Context
Congrats on the project and the great lighting talk at PyConES2023 !
Really great project. Thanks for contributing to the community. Keep the great work up! 👍
I´m testing out under the context of The Lord of The Words project
So I go to the project folder after pip install pip-rating
and run
$ pip-rating Expected behavior
Hypothesis
click isodate format working
Actual behavior
It does indeed start analyzing dependencies, but at some point it shows the following error.
Posting here full-trace
(.torchenv) pip-rating
Autodetected requirements file: requirements.txt
Traceback (most recent call last):
File "/Users/gema/miniconda3/bin/pip-rating", line 8, in <module>
sys.exit(manage())
File "/Users/gema/miniconda3/lib/python3.10/site-packages/pip_rating/management.py", line 206, in manage
catch(cli)()
File "/Users/gema/miniconda3/lib/python3.10/site-packages/pip_rating/exceptions.py", line 45, in wrap
fn(*args, **kwargs)
File "/Users/gema/miniconda3/lib/python3.10/site-packages/click/core.py", line 1157, in __call__
return self.main(*args, **kwargs)
File "/Users/gema/miniconda3/lib/python3.10/site-packages/click/core.py", line 1078, in main
rv = self.invoke(ctx)
File "/Users/gema/miniconda3/lib/python3.10/site-packages/click/core.py", line 1666, in invoke
rv = super().invoke(ctx)
File "/Users/gema/miniconda3/lib/python3.10/site-packages/click/core.py", line 1434, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/Users/gema/miniconda3/lib/python3.10/site-packages/click/core.py", line 783, in invoke
return __callback(*args, **kwargs)
File "/Users/gema/miniconda3/lib/python3.10/site-packages/click/decorators.py", line 33, in new_func
return f(get_current_context(), *args, **kwargs)
File "/Users/gema/miniconda3/lib/python3.10/site-packages/pip_rating/management.py", line 77, in cli
ctx.invoke(analyze_file, file=str(req_file.path))
File "/Users/gema/miniconda3/lib/python3.10/site-packages/click/core.py", line 783, in invoke
return __callback(*args, **kwargs)
File "/Users/gema/miniconda3/lib/python3.10/site-packages/pip_rating/management.py", line 160, in
analyze_file
results.show_results(dependencies, format_name)
File "/Users/gema/miniconda3/lib/python3.10/site-packages/pip_rating/results.py", line 294, in
show_results
self.show_packages_results(dependencies)
File "/Users/gema/miniconda3/lib/python3.10/site-packages/pip_rating/results.py", line 307, in
show_packages_results
global_rating_score = self.get_global_rating_score(dependencies)
File "/Users/gema/miniconda3/lib/python3.10/site-packages/pip_rating/results.py", line 277, in
get_global_rating_score
global_rating_score = dependencies.get_global_rating_score()
File "/Users/gema/miniconda3/lib/python3.10/site-packages/pip_rating/dependencies.py", line 139, in
get_global_rating_score
global_rating_score = package.rating.get_global_rating_score()
File "/Users/gema/miniconda3/lib/python3.10/site-packages/pip_rating/rating.py", line 322, in
get_global_rating_score
[self.get_rating_score(from_package)]
File "/Users/../miniconda3/lib/python3.10/site-packages/pip_rating/rating.py", line 318, in
get_rating_score
return self.rating_score
File "/Users/../miniconda3/lib/python3.10/functools.py", line 981, in __get__
val = self.func(instance)
File "/Users/../miniconda3/lib/python3.10/site-packages/pip_rating/rating.py", line 291, in
rating_score
scores = dict(self.breakdown_scores).values()
File "/Users/gema/miniconda3/lib/python3.10/functools.py", line 981, in __get__
val = self.func(instance)
File "/Users/../miniconda3/lib/python3.10/site-packages/pip_rating/rating.py", line 277, in
breakdown_scores
return [
File "/Users/.../miniconda3/lib/python3.10/site-packages/pip_rating/rating.py", line 278, in <listcomp>
(breakdown.breakdown_key, breakdown.get_score(self))
File "/Users/gema/miniconda3/lib/python3.10/site-packages/pip_rating/rating.py", line 146, in get_score
dt = datetime.datetime.fromisoformat(iso_dt)
ValueError: Invalid isoformat string: '2023-09-14T18:56:29.702900Z'
Interpretation
I´m still getting familiarized with some details, but what I´m understanding ( please, don´t hesitate to tell me if I´m wrong or pointing me out to the right direction ) is that this might be related with click date conversion somehow?
The mental model under the click choice hypothesis is based on part of the following trace, but I might be wrong!
File "/Users/gema/miniconda3/lib/python3.10/site-packages/click/core.py", line 1157, in __call__
return self.main(*args, **kwargs)
File "/Users/gema/miniconda3/lib/python3.10/site-packages/click/core.py", line 1078, in main
rv = self.invoke(ctx)
File "/Users/gema/miniconda3/lib/python3.10/site-packages/click/core.py", line 1666, in invoke
rv = super().invoke(ctx)
File "/Users/gema/miniconda3/lib/python3.10/site-packages/click/core.py", line 1434, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/Users/gema/miniconda3/lib/python3.10/site-packages/click/core.py", line 783, in invoke
return __callback(*args, **kwargs)
File "/Users/gema/miniconda3/lib/python3.10/site-packages/click/decorators.py", line 33, in new_func
return f(get_current_context(), *args, **kwargs)
When I go here , what Im understanding is that you are trying to use a delta-time to determine somehow a "time-trusted-score" based on when was it updated and now?
Traceback
No response
Pip-rating version
Info
pip-rating 0.2.1
🔝 This is the latest version.
🐍 Python version: 3.10.10
💻 Platform: macOS-13.4.1-arm64-arm-64bit
Other details
I really found useful the tool verbosity, as I could see that It was going down in the analysis.
Congrats for bringing transparency to OSS maintenance!
Checklist
- The error is in the project's code, and not in my own.
- I have searched for this issue before posting it and there isn't an open duplicate.
- I ran
pip install -U pip-ratingand triggered the bug in the latest version.