Commit Graph

120 Commits

Author SHA1 Message Date
Cyril Jouve
cedc2d962e jinja2 loader types (#2179) 2018-05-31 21:40:57 -07:00
Michael J. Sullivan
2ba90a65c0 Remove __all__ = ... from stubs (#2161)
The presence of a __all__ causes everything to not get picked up by
import *, which among other things breaks the new six.moves stubs.
2018-05-24 19:00:07 -07:00
Semyon Proshev
6a080cd0db Use assignments instead of redefinitions for aliases in attrs (#2143) 2018-05-17 20:27:34 -07:00
Michael Lee
97d9f2eb2c Ensures overloads are ordered from narrow to broad (#2138)
This commit reorders any overloads where the first overload was
"shadowing" the second, preventing it from ever being matched by type
checkers that work by selecting the first matching overload alternative.

For example, the first overload alternative below is strictly broader
then the second, preventing it from ever being selected:

    class Parent: pass
    class Child(Parent): pass

    @overload
    def foo(x: *int) -> Parent: ...
    @overload
    def foo(x: int, y: int) -> Child: ...

The correct thing to do is to either delete the second overload or
rearrange them to look like this:

    @overload
    def foo(x: int, y: int) -> Child: ...
    @overload
    def foo(x: *int) -> Parent: ...

Rationale: I'm currently [working on a proposal][0] that would amend
PEP 484 to (a) mandate type checkers check overloads in order and
(b) prohibit overloads where an earlier alternative completely shadows
a later one.

  [0]: https://github.com/python/typing/issues/253#issuecomment-389262904

This would prohibit overloads that look like the example below, where
the first alternative completely shadows the second.

I figured it would be a good idea to make these changes ahead of time:
if my proposal is accepted, it'd make the transition smoother. If not,
this is hopefully a relatively harmless change.

Note: I think some of these overloads could be simplified (e.g.
`reversed(...)`), but I mostly stuck with rearranging them in case I was
wrong. The only overload I actually changed was `hmac.compare_digest` --
I believe the Python 2 version actually accepts unicode.
2018-05-17 09:45:33 -04:00
Jelle Zijlstra
463b4144dc explicitly import boto.regioninfo (#2121)
This may be causing intermittent test failures (see discussion on gitter).
2018-05-15 10:09:44 -04:00
Katelyn Gigante
51446f35fc Add stub for dateutil.rrule (#1808) 2018-05-15 09:04:57 -04:00
Andrew Gaul
29bf24b8b9 Reparent simplejson from 2 to 2and3 (#2088) 2018-05-04 15:59:26 -07:00
David Euresti
863b9b0886 Add new factory arg to attrib and fields_dict (#2096) 2018-05-04 07:53:52 -07:00
David Euresti
664d30c44b Fix attr.Factory signature (#2077)
The first overload was catching all calls including take_self=True.
Fix it by modifying the overloads.

Fixes https://github.com/python-attrs/attrs/issues/366
2018-04-23 12:27:14 -07:00
Aaron Miller
8e62a79970 Fix type of click.Path path_type arg (#2066)
path_type takes a *type*, rather than instance of the type
2018-04-17 23:32:02 -07:00
Andrew Gaul
aa7d705ae8 Add hints to PyYAML dump methods (#2023) 2018-04-09 12:59:10 -07:00
Matt Gilson
a994c47198 Fixup the boto stubs to allow mypy --strict. (#2032) 2018-04-08 12:41:04 -07:00
Jelle Zijlstra
8482b1030b fill out stubs for requests.structures (#1897)
Looked at https://github.com/requests/requests/blob/master/requests/structures.py.

The "data" argument to the CaseInsensitiveDict constructor is passed as is to .update(),
so I accept the same argument types as MutableMapping.update.

LookupDict is strangely named and implemented but the point seems to be that you
setattr its keys, and then can access them with both attribute access and subscripting.
See its usage in d1fb1a29ab/requests/status_codes.py (L102).
2018-04-06 11:36:43 -07:00
Alan Du
603be5e1da Fix typehint of click progressbar (#2003)
* Fix typehint of click progressbar

* Oops -- stubs are *.pyi files
2018-04-03 07:16:17 -07:00
David Euresti
097e9f5e71 Fix issue with attrib ordering. (#1980)
A call like this:

```
from attr import attrib
from attr.validators import optional, instance_of

c = attrib(default=None, validator=optional(instance_of(bytes)))
```

Was returning no return value, because the first overload was T -> T.
The solution was to change the ordering so that the first overload is
None -> T and infer the type from the other arguments.
2018-03-22 10:50:07 -07:00
Luka Sterbic
89cbd47344 Stubs for termcolor (#1935) 2018-03-20 15:32:50 -07:00
Leonardo Fedalto
a9cce0c94b Add requests.utils.set_environ (#1973) 2018-03-20 11:15:52 -07:00
Dan Sully
ef87943397 Update click.option to allow for user defined kwargs. (#1950)
Click's option decorator can take a cls= argument, which allows that class to parse arbitrary arguments from the decorator.
2018-03-07 10:32:55 -08:00
David Euresti
df65f6ea15 Better type for click 'type' argument (#1903)
The call accepts tuples of types and callback methods
2018-03-06 21:41:21 -08:00
yed podtrzitko
1fe9fd83fa validator.instance_of can contain sequence of types (#1920) 2018-03-06 10:18:33 -08:00
David Euresti
50c7188300 Work around mypy issue #4554 in attr.Factory (#1933)
This makes the following not give a type error:

   y: DefaultDict[str, List[int]] = Factory(lambda: defaultdict(list))
2018-03-05 19:21:14 -08:00
Matthias Kramm
6c30806d07 add deprecation comment to mypy_extensions (#1943) 2018-03-05 18:51:14 -08:00
Han Song
a5c9093edc Allow requests.post to accept str for data. (#1922)
```python
import json

url = 'https://api.github.com/some/endpoint'
payload = {'some': 'data'}
r = requests.post(url, data=json.dumps(payload))
```
2018-02-25 22:19:35 -08:00
David Euresti
61e63293f1 Work around mypy issue #4554 in attrs. (#1914) 2018-02-24 13:00:15 -08:00
Roy Williams
8891b02d51 Make update parameters all optional (#1913)
As of https://github.com/pynamodb/PynamoDB/pull/352 all of these params are optional.
2018-02-23 13:18:55 -08:00
Daniel Bowman
1707d8f466 Improve pymysql types (#1804)
Add all cursor types and missing show_warnings method in connections

Added show_warnings to connections. No return type specified as this
requires tracing back through missing return types in previous
author's work. This is out of scope for this pull request.

Added SSDictCursor, SSCursor and DictCursorMixin to complete the
Cursors definition.
2018-02-16 17:23:17 -08:00
Asim Goheer
e7b567c1f4 Issue 1858: pynamodb 3.2.1 added new methods in Attributes which are not in typeshed (#1859) 2018-02-16 16:54:45 -08:00
Roy Williams
0f36f7ea09 Treat all pynamodb Numbers as floats (#1895)
Previously we specified this as a Union type, which caused more problems than it helped with, namely when reading data off a Pynamo property
We still had to cast to the appropriate type.  Pynamo simply reads the type out of Dynamo, which more closely models a float as it can be an int or a float -

https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.NamingRulesDataTypes.html
2018-02-16 16:42:32 -08:00
David Euresti
fe5e12795f Fix signature of CaseInsensitiveDict (#1873)
The values can be more than just strings.
2018-02-11 08:19:39 -08:00
Chad Dombrova
b111a4537f Add attrs library (#1838) 2018-02-02 21:26:35 -08:00
Erwin Janssen
b5baedffb7 Add 'message' to click.decorators.version_option (#1845)
Click's version_option decorator allows the caller to specify the
version message. This optional string option is missing in typeshed.
2018-01-31 16:56:49 -08:00
Carl Meyer
1c3ec74d13 Remove incomplete thrift stubs that cause false positives. (#1827) 2018-01-26 15:26:14 -08:00
Garrett
372b541a07 Fix requests session hooks type (#1794) 2018-01-26 14:39:01 -08:00
Roy Williams
8175130688 Reexport DoesNotExist from pynamodb.models (#1809) 2018-01-10 05:00:39 +08:00
Jelle Zijlstra
0eb7083f0e move dateutil into 2and3 (#1743)
These stubs are identical since #1735.
2017-12-23 06:38:55 -08:00
Sebastian Rittau
64ca731d0b jinja2: Add Template.environment (#1789)
From the docstring for Template: "Template objects created from the
constructor rather than an environment do have an `environment`
attribute that points to a temporary environment ..."
2017-12-17 10:04:53 -08:00
Alex Dehnert
8404a62231 requests: add more accurate stubs for certain fields of the Session object (#1504)
* requests: allow strings in Session.verify

Per the documentation[1] (and actual usage), the verify parameter can be a
string or a bool.

[1] http://docs.python-requests.org/en/master/user/advanced/#ssl-cert-verification

* requests: explicitly support AuthBase for Session.auth

According to the documentation, the auth parameter should be an AuthBase
subclass[1].  In practice, the actual requirement seems to just be a
Callable[[Request], Request], and AuthBase implements that with the __call__
method. However, mypy isn't currently smart enough to infer that __call__
implies Callable[2]. In the interim (and perhaps also to add clearer errors),
explicitly support AuthBase.

Additionally, this adds typing of AuthBase.__call__, to match the
Callable[[Request], Request] declaration used elsewhere.

[1] http://docs.python-requests.org/en/master/user/advanced/#custom-authentication
[2] https://github.com/python/mypy/issues/797
2017-12-14 21:05:28 -08:00
Roy Williams
1dccd1fdc4 Allow requests.post to accept Dict[str, str] for data. (#1777)
* Allow `requests.post` to accept `Dict[str, str]` for `data`.

For example:

```python
import requests
requests.post('https://www.foo.bar', data={'hello': 'world'})
```

Failes to type check in Python 2 even though it's fine.

* Explode str/Text combinations

* Fix lint

* Simplify iterable parameter for data
2017-12-14 20:36:21 -08:00
Alan Du
7c4765357a Make requests.Response.iter_content allow None (#1784)
* Make requests.Response.iter_content allow None

According to the docstring:
> chunk_size must be of type int or None

* Combine and alphabetize import statement
2017-12-13 14:25:32 -08:00
Roy Williams
10a76c1fdd Export Connection and TableConnection from pynamodb.connection (#1779)
It looks like in recent versions of mypy this stopped being exported.
2017-12-07 14:35:13 -08:00
Guido van Rossum
821c765991 Several packages always auto-import certain submodules on import (#1752)
* Importing yaml implies yaml.resolver

* Importing six implies six.moves

* Importing requests implies requests.packages
2017-11-17 15:15:40 -08:00
Jelle Zijlstra
533a05be45 Fix some of the last default values that are not ... (#1731)
* still one left in atomicwrites that I need to investigate further
* fix atomicwrites
2017-11-13 07:08:30 -08:00
Jelle Zijlstra
69bffd154a Fix default values in click stubs to ... (#1734) 2017-11-13 07:07:20 -08:00
Jelle Zijlstra
84d0cbf776 move thrift to 2and3 (#1736)
thrift supports Python 3 as of version 0.10.0. These stubs are pure stubgen and
might not be much good, but they belong in 2and3.
2017-11-13 07:05:57 -08:00
Jelle Zijlstra
bcfd3bf554 Fill out croniter stubs and move to 2and3 (#1737)
* fill out croniter stub
* move to 2and3
2017-11-13 07:05:38 -08:00
Jelle Zijlstra
83ca997140 Change more defaults to ... (#1729)
* codemod ': Any = None' ': Any = ...'
* codemod ': (Union|Optional)([^=]+)\s+=\s+-?\d+' ': \1\2 = ...'
* codemod ': (Union|Optional)([^=]+)\s*=\s*-?(None|False|True)' ': \1\2 = ...'
* codemod ': (int|float|bool)\s*=\s*-?\d+' ': \1 = ...'
* codemod ': (bool)\s*=\s*(False|True)' ': \1 = ...'
* codemod ': Any\s*=\s*(False|True|None)' ': Any = ...'
2017-11-13 06:56:24 -08:00
Jelle Zijlstra
324f1761f4 Change more defaults to ... (#1727) 2017-11-09 10:32:17 -08:00
Jelle Zijlstra
54dd6ba27c Change numerous default values to ... (#1722)
This is the convention, and some default values (e.g. strings) apparently
break pytype.
2017-11-09 06:28:40 -08:00
Brandon W Maister
a1238294d7 Remove unnecessary optionality for requests.Session (#1658)
Current code that initializes the things I've changed, to demonstrate that the
object is initialized this way:

* headers: https://github.com/requests/requests/blob/9713289e74/requests/sessions.py#L345
* proxies: https://github.com/requests/requests/blob/9713289e74/requests/sessions.py#L354
* hooks: https://github.com/requests/requests/blob/9713289e74/requests/sessions.py#L357
* params: https://github.com/requests/requests/blob/9713289e74/requests/sessions.py#L362
* cookies: https://github.com/requests/requests/blob/9713289e74/requests/sessions.py#L388

from what I can tell nothing in the official requests API ever creates a
session other than through `__init__`.
2017-11-08 19:53:56 -08:00
Grzegorz Śliwiński
9439ec4e4f click.echo message arg type to follow click's documentation (#1698)
str is not unicode on Python 2 while Text is a proper alias for unicode on python 2 and str on python 3

closes #1691
2017-11-08 19:41:36 -08:00