support alias for `sys` when checking version_info
Personne n'a encore pris cette issue.
- Langage dominant
- Python
- Étoiles
- 20.6k
- Forks
- 3.3k
- Métriques de merge des PR
- Métriques de PR en attente
Description
Issue kind:
Bug Report.
Env:
- mypy 0.620
- Python 3.7.2
How to reproduce
Code as following:
# t.py
import sys as py_sys
if py_sys.version_info < (3, 0):
unicode = unicode
chr = unichr
else:
unicode = str
exec mypy t.py, and use default config, it reports
t.py:5: error: Cannot determine type of 'unicode'
t.py:6: error: Name 'unichr' is not defined
But following code is ok.
# t.py
import sys
if sys.version_info < (3, 0):
unicode = unicode
chr = unichr
else:
unicode = str
Master branch(mypy-0.660+dev.d1c8f27f696012085ca904e96f8b93b92b74919e mypy-extensions-0.4.1 typed-ast-1.1.1) has the same problem.
Except:
mypy can recognize sys module alias, and handle compact code.
Actual:
If use a sys module's alias to get Python version, and write some compact code, it will check all code.
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par la reproduction dans t.py et exécutez mypy en utilisant d’abord l’importation directe de sys, puis l’alias py_sys, afin de comparer la gestion de version_info et les erreurs unicode et unichr signalées. C’est terminé lorsque mypy reconnaît le module sys utilisant un alias et vérifie de manière cohérente le code compact dépendant de la version.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- compilers
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 48/100