arrow-py / arrow

🏹 Better dates & times for Python
https://arrow.readthedocs.io
Apache License 2.0
8.71k stars 673 forks source link

New type definitions prevent `arrow.get(2021, 3, 9)` (three integer arguments) from passing type checks. #942

Closed f0rk closed 3 years ago

f0rk commented 3 years ago

Issue Description

New type definitions prevent arrow.get(2021, 3, 9) (three integer arguments) from passing type checks.

[17:44:27]ryan@curie:tmp$ virtualenv --python=python3 lol
Running virtualenv with interpreter /home/ryan/.pyenv/shims/python3
Using base prefix '/usr'
New python executable in /tmp/lol/bin/python3
Also creating executable in /tmp/lol/bin/python
Installing setuptools, pkg_resources, pip, wheel...done.
[17:44:41]ryan@curie:tmp$ source lo
log2.log  log.log   lol/
[17:44:41]ryan@curie:tmp$ source lol/bin/activate
(lol) [17:44:46]ryan@curie:tmp$ mkdir wut
(lol) [17:44:49]ryan@curie:tmp$ cd !$
cd wut
(lol) [17:44:51]ryan@curie:wut$ vim x.py
(lol) [17:45:05]ryan@curie:wut$ pip install mypy arrow
Collecting mypy
  Downloading mypy-0.812-cp36-cp36m-manylinux2010_x86_64.whl (21.6 MB)
     |████████████████████████████████| 21.6 MB 246 kB/s
Collecting arrow
  Downloading arrow-1.0.3-py3-none-any.whl (54 kB)
     |████████████████████████████████| 54 kB 2.4 MB/s
Collecting python-dateutil>=2.7.0
  Downloading python_dateutil-2.8.1-py2.py3-none-any.whl (227 kB)
     |████████████████████████████████| 227 kB 17.8 MB/s
Collecting typing-extensions
  Downloading typing_extensions-3.7.4.3-py3-none-any.whl (22 kB)
Collecting six>=1.5
  Using cached six-1.15.0-py2.py3-none-any.whl (10 kB)
Collecting typed-ast<1.5.0,>=1.4.0
  Downloading typed_ast-1.4.2-cp36-cp36m-manylinux1_x86_64.whl (743 kB)
     |████████████████████████████████| 743 kB 11.2 MB/s
Collecting mypy-extensions<0.5.0,>=0.4.3
  Using cached mypy_extensions-0.4.3-py2.py3-none-any.whl (4.5 kB)
Installing collected packages: six, typing-extensions, typed-ast, python-dateutil, mypy-extensions, mypy, arrow
Successfully installed arrow-1.0.3 mypy-0.812 mypy-extensions-0.4.3 python-dateutil-2.8.1 six-1.15.0 typed-ast-1.4.2 typing-extensions-3.7.4.3
(lol) [17:45:21]ryan@curie:wut$ mypy x.py 
x.py:3: error: No overload variant of "get" matches argument types "int", "int", "int"
x.py:3: note: Possible overload variants:
x.py:3: note:     def get(*, locale: str = ..., tzinfo: Union[tzinfo, str, None] = ..., normalize_whitespace: bool = ...) -> Arrow
x.py:3: note:     def get(__obj, Union[Arrow, datetime, date, struct_time, tzinfo, int, float, str, Tuple[int, int, int]], *, locale: str = ..., tzinfo: Union[tzinfo, str, None] = ..., normalize_whitespace: bool = ...) -> Arrow
x.py:3: note:     <2 more similar overloads not shown, out of 4 total overloads>
Found 1 error in 1 file (checked 1 source file)
(lol) [17:45:48]ryan@curie:wut$ cat x.py
import arrow

arrow.get(2021, 3, 9)
(lol) [17:46:00]ryan@curie:wut$ 

System Info