-
-
Notifications
You must be signed in to change notification settings - Fork 2k
add boltons #8892
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
add boltons #8892
Changes from 16 commits
9680e81
a6800a3
ede7ad0
0d7f4ff
d40ab5d
04ab8fd
24c1590
0c90a6e
76b5e8b
af3dbb9
f120ae7
9ee21c5
b6d5968
416ba9c
007b6d1
2155b12
211c8d0
155c216
339528c
25400e7
0d63389
b4e0a7d
f372c6c
f51cdc6
4efb652
d0e2679
dc972ad
1ebd17f
13bd8da
8dd781b
ba7843e
dc819d4
f661197
d58eefa
fff4362
ed0633e
3c35bb5
6725d86
7d80804
bff5263
a7a969c
3c50398
399716c
e24405a
3a4de5e
7a8811f
0948b5c
048783f
ad6c2ab
0a5b40c
e044708
b63f681
3fe149d
cff28a5
abb2d21
019b6a9
a536c53
69e8767
f48d187
ef5c948
9d1128c
5cfc655
f60417c
700ab61
f7b8936
c83e076
de2d52a
8479b28
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -66,3 +66,6 @@ analyze.py | |
|
|
||
| # Mypy cache | ||
| .mypy_cache/ | ||
|
|
||
| # pyenv local python version | ||
| .python-version | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,3 @@ | ||
| boltons.ecoutils | ||
| boltons.strutils.int_list_complement | ||
| boltons.strutils.int_list_to_int_tuples | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,4 @@ | ||
| version = "21.0.*" | ||
|
|
||
| [tool.stubtest] | ||
| ignore_missing_stub = false |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,107 @@ | ||
| from _typeshed import Incomplete | ||
| from collections.abc import Generator | ||
|
|
||
| xrange = range | ||
| unicode: Incomplete | ||
| str: Incomplete | ||
| bytes: Incomplete | ||
| basestring: Incomplete | ||
| PREV: Incomplete | ||
| NEXT: Incomplete | ||
| KEY: Incomplete | ||
| VALUE: Incomplete | ||
| DEFAULT_MAX_SIZE: int | ||
|
|
||
| class LRI(dict[Incomplete, Incomplete]): | ||
| hit_count: int | ||
AABur marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| max_size: Incomplete | ||
| on_miss: Incomplete | ||
| def __init__(self, max_size=..., values: Incomplete | None = ..., on_miss: Incomplete | None = ...) -> None: ... | ||
| def __setitem__(self, key, value) -> None: ... | ||
| def __getitem__(self, key): ... | ||
| def get(self, key, default: Incomplete | None = ...): ... | ||
| def __delitem__(self, key) -> None: ... | ||
| def pop(self, key, default=...): ... | ||
| def popitem(self): ... | ||
| def clear(self) -> None: ... | ||
| def copy(self): ... | ||
| def setdefault(self, key, default: Incomplete | None = ...): ... | ||
| def update(self, E, **F) -> None: ... # type: ignore | ||
|
||
| def __eq__(self, other): ... | ||
| def __ne__(self, other): ... | ||
|
|
||
| class LRU(LRI): | ||
| def __getitem__(self, key): ... | ||
|
|
||
| class _HashedKey(list[Incomplete]): | ||
| hash_value: Incomplete | ||
| def __init__(self, key) -> None: ... | ||
| def __hash__(self): ... | ||
|
|
||
| def make_cache_key(args, kwargs, typed: bool = ..., kwarg_mark=..., fasttypes=...): ... | ||
|
|
||
| class CachedFunction: | ||
| func: Incomplete | ||
| get_cache: Incomplete | ||
| scoped: Incomplete | ||
| typed: Incomplete | ||
| key_func: Incomplete | ||
| def __init__(self, func, cache, scoped: bool = ..., typed: bool = ..., key: Incomplete | None = ...): ... | ||
| def __call__(self, *args, **kwargs): ... | ||
|
|
||
| class CachedMethod: | ||
| func: Incomplete | ||
| __isabstractmethod__: Incomplete | ||
| get_cache: Incomplete | ||
| scoped: Incomplete | ||
| typed: Incomplete | ||
| key_func: Incomplete | ||
| bound_to: Incomplete | ||
| def __init__(self, func, cache, scoped: bool = ..., typed: bool = ..., key: Incomplete | None = ...): ... | ||
| def __get__(self, obj, objtype: Incomplete | None = ...): ... | ||
| def __call__(self, *args, **kwargs): ... | ||
|
|
||
| def cached(cache, scoped: bool = ..., typed: bool = ..., key: Incomplete | None = ...): ... | ||
| def cachedmethod(cache, scoped: bool = ..., typed: bool = ..., key: Incomplete | None = ...): ... | ||
|
|
||
| class cachedproperty: | ||
| __doc__: Incomplete | ||
AABur marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| __isabstractmethod__: Incomplete | ||
| func: Incomplete | ||
| def __init__(self, func) -> None: ... | ||
| def __get__(self, obj, objtype: Incomplete | None = ...): ... | ||
|
|
||
| class ThresholdCounter: | ||
| total: int | ||
| def __init__(self, threshold: float = ...) -> None: ... | ||
| @property | ||
| def threshold(self): ... | ||
| def add(self, key) -> None: ... | ||
| def elements(self): ... | ||
| def most_common(self, n: Incomplete | None = ...): ... | ||
| def get_common_count(self): ... | ||
| def get_uncommon_count(self): ... | ||
| def get_commonality(self): ... | ||
| def __getitem__(self, key): ... | ||
| def __len__(self): ... | ||
| def __contains__(self, key): ... | ||
| def iterkeys(self): ... | ||
| def keys(self): ... | ||
| def itervalues(self) -> Generator[Incomplete, None, None]: ... | ||
| def values(self): ... | ||
| def iteritems(self) -> Generator[Incomplete, None, None]: ... | ||
| def items(self): ... | ||
| def get(self, key, default: int = ...): ... | ||
| def update(self, iterable, **kwargs) -> None: ... | ||
|
|
||
| class MinIDMap: | ||
| mapping: Incomplete | ||
| ref_map: Incomplete | ||
| free: Incomplete | ||
| def __init__(self) -> None: ... | ||
| def get(self, a): ... | ||
| def drop(self, a) -> None: ... | ||
| def __contains__(self, a): ... | ||
| def __iter__(self): ... | ||
| def __len__(self): ... | ||
| def iteritems(self): ... | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| from _typeshed import Incomplete | ||
|
|
||
| def pdb_on_signal(signalnum: Incomplete | None = ...) -> None: ... | ||
| def pdb_on_exception(limit: int = ...) -> None: ... | ||
| def wrap_trace( | ||
| obj, hook=..., which: Incomplete | None = ..., events: Incomplete | None = ..., label: Incomplete | None = ... | ||
| ): ... |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| from types import ModuleType | ||
|
|
||
| class DeprecatableModule(ModuleType): | ||
| def __init__(self, module) -> None: ... | ||
| def __getattribute__(self, name): ... | ||
|
|
||
| def deprecate_module_member(mod_name, name, message) -> None: ... |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,90 @@ | ||
| from _typeshed import Incomplete | ||
| from collections.abc import Generator, Hashable, ItemsView, Iterable, KeysView, ValuesView | ||
| from typing import Any, NoReturn, TypeVar | ||
| from typing_extensions import TypeAlias | ||
|
|
||
| def __getattr__(name: str) -> Any: ... # incomplete | ||
|
|
||
| _KT = TypeVar("_KT") | ||
| _VT = TypeVar("_VT") | ||
|
|
||
| class OrderedMultiDict(dict[_KT, _VT]): | ||
| def add(self, k: _KT, v: _VT) -> NoReturn: ... | ||
| def addlist(self, k: _KT, v: Iterable[object]) -> NoReturn: ... | ||
AABur marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| def clear(self) -> NoReturn: ... | ||
| def copy(self) -> OrderedMultiDict[_KT, _VT]: ... | ||
AABur marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| def counts(self) -> OrderedMultiDict[_KT, _VT]: ... | ||
| @classmethod | ||
| def fromkeys(cls, keys: _KT, default: _VT | None = ...) -> OrderedMultiDict[_KT, _VT]: ... # type: ignore | ||
AABur marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| def get(self, k: _KT, default: _VT | None = ...) -> OrderedMultiDict[_KT, _VT]: ... # type: ignore | ||
| def getlist(self, k: _KT, default: _VT | None = ...) -> list[object]: ... | ||
| def inverted(self) -> OrderedMultiDict[_KT, _VT]: ... | ||
| def items(self, multi: bool = ...) -> list[tuple[_KT, _VT]]: ... # type: ignore | ||
| def iteritems(self, multi: bool = ...) -> Generator[tuple[_KT, _VT], None, None]: ... | ||
| def iterkeys(self, multi: bool = ...) -> Generator[_KT, None, None]: ... | ||
| def itervalues(self, multi: bool = ...) -> Generator[_VT, None, None]: ... | ||
| def keys(self, multi: bool = ...) -> list[_KT]: ... # type: ignore | ||
| def pop(self, k: _KT, default: _VT | None = ...) -> _VT: ... # type: ignore | ||
| def popall(self, k: _KT, default: _VT | None = ...) -> list[_VT]: ... | ||
| def poplast(self, k: _KT | None = ..., default: _VT | None = ...) -> _VT: ... | ||
| def setdefault(self, k: _KT, default: _VT | None = ...) -> _VT: ... | ||
| def sorted(self, key: _KT | None = ..., reverse: bool = ...) -> OrderedMultiDict[_KT, _VT]: ... | ||
| def sortedvalues(self, key: _KT | None = ..., reverse: bool = ...) -> OrderedMultiDict[_KT, _VT]: ... | ||
| def todict(self, multi: bool = ...) -> dict[_KT, _VT]: ... | ||
| def update(self, E: dict[_KT, _VT] | Iterable[object], **F) -> NoReturn: ... # type: ignore | ||
| def update_extend(self, E: dict[_KT, _VT] | Iterable[object], **F) -> NoReturn: ... | ||
| def values(self, multi: bool = ...) -> list[_VT]: ... # type: ignore | ||
| def viewitems(self) -> ItemsView[_KT, _VT]: ... | ||
| def viewkeys(self) -> KeysView[_KT]: ... | ||
| def viewvalues(self) -> ValuesView[_VT]: ... | ||
|
|
||
| OMD: TypeAlias = OrderedMultiDict[Any, Any] | ||
| MultiDict: TypeAlias = OrderedMultiDict[Any, Any] | ||
AABur marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| class FastIterOrderedMultiDict(OrderedMultiDict[_KT, _VT]): # undocumented | ||
| def iteritems(self, multi: bool = ...) -> Generator[tuple[_KT, _VT], None, None]: ... | ||
| def iterkeys(self, multi: bool = ...) -> Generator[_KT, None, None]: ... | ||
|
|
||
| class OneToOne(dict[_KT, _VT]): | ||
| inv: Incomplete | ||
| def clear(self) -> None: ... | ||
| def copy(self) -> OneToOne[_KT, _VT]: ... | ||
| def pop(self, key: _KT, default: _VT = ...) -> _VT: ... # type: ignore | ||
| def popitem(self) -> tuple[_KT, _VT]: ... | ||
| def setdefault(self, key: _KT, default: _VT | None = ...) -> _VT: ... | ||
| @classmethod | ||
| def unique(cls, *a, **kw) -> NoReturn: ... | ||
AABur marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| def update(self, dict_or_iterable: dict[_KT, _VT] | Iterable[object], **kw) -> NoReturn: ... # type: ignore | ||
|
|
||
| class ManyToMany: | ||
AABur marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| data: dict[Hashable, object] | ||
| def __contains__(self, key): ... | ||
| def __delitem__(self, key) -> None: ... | ||
| def __eq__(self, other): ... | ||
| def __getitem__(self, key): ... | ||
| def __init__(self, items: Incomplete | None = ...) -> None: ... | ||
| def __iter__(self): ... | ||
| def __len__(self): ... | ||
| def __setitem__(self, key, vals) -> None: ... | ||
| def add(self, key: Hashable, val: object) -> NoReturn: ... | ||
| def get(self, key: Hashable, default: frozenset[object] = ...) -> object: ... | ||
| def iteritems(self) -> Generator[tuple[Hashable, object], None, None]: ... | ||
| def keys(self): ... # incomplete | ||
| def remove(self, key: Hashable, val: object) -> NoReturn: ... | ||
| def replace(self, key: Hashable, newkey: Hashable) -> NoReturn: ... | ||
| def update(self, iterable) -> None: ... | ||
| inv: tuple[object] | ||
AABur marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| def subdict(d: dict[_KT, _VT], keep: Iterable[_VT] | None = ..., drop: Iterable[_VT] | None = ...) -> dict[_KT, _VT]: ... | ||
AABur marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| class FrozenHashError(TypeError): ... # undocumented | ||
|
|
||
| class FrozenDict(dict[_KT, _VT]): | ||
| def __copy__(self): ... | ||
| def clear(self, *a, **kw) -> NoReturn: ... | ||
| @classmethod | ||
| def fromkeys(cls, keys: Iterable[_KT], value: _VT | None = ...) -> FrozenDict[_KT, _VT]: ... # type: ignore | ||
| def pop(self, *a, **kw) -> NoReturn: ... | ||
| def popitem(self, *a, **kw) -> NoReturn: ... | ||
| def setdefault(self, *a, **kw) -> NoReturn: ... | ||
| def updated(self, *a, **kw) -> FrozenDict[_KT, _VT]: ... | ||
AABur marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| def gobs_program() -> None: ... |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,27 @@ | ||
| from _typeshed import Incomplete | ||
|
|
||
| ECO_VERSION: str | ||
| PY_GT_2: Incomplete | ||
| getrandbits: Incomplete | ||
| HAVE_URANDOM: bool | ||
| INSTANCE_ID: Incomplete | ||
| IS_64BIT: Incomplete | ||
| HAVE_UCS4: Incomplete | ||
| HAVE_READLINE: bool | ||
| SQLITE_VERSION: Incomplete | ||
| OPENSSL_VERSION: Incomplete | ||
| TKINTER_VERSION: Incomplete | ||
| ZLIB_VERSION: Incomplete | ||
| EXPAT_VERSION: Incomplete | ||
| CPU_COUNT: Incomplete | ||
| HAVE_THREADING: bool | ||
| HAVE_IPV6: Incomplete | ||
| RLIMIT_NOFILE: Incomplete | ||
| RLIMIT_FDS_SOFT: Incomplete | ||
| RLIMIT_FDS_HARD: Incomplete | ||
| START_TIME_INFO: Incomplete | ||
|
|
||
| def get_python_info(): ... | ||
| def get_profile(**kwargs): ... | ||
| def get_profile_json(indent: bool = ...): ... | ||
| def main() -> None: ... |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,27 @@ | ||
| from _typeshed import Incomplete | ||
| from typing import NamedTuple | ||
|
|
||
| class ExceptionCauseMixin(Exception): | ||
| cause: Incomplete | ||
| def __new__(cls, *args, **kw): ... | ||
| def get_str(self): ... | ||
|
|
||
| class _BaseTBItem(NamedTuple): | ||
| filename: Incomplete | ||
| lineno: Incomplete | ||
| name: Incomplete | ||
| line: Incomplete | ||
|
|
||
| class _TBItem(_BaseTBItem): ... | ||
|
|
||
| class _DeferredLine: | ||
| filename: Incomplete | ||
| lineno: Incomplete | ||
| module_globals: Incomplete | ||
| def __init__(self, filename, lineno, module_globals: Incomplete | None = ...) -> None: ... | ||
| def __eq__(self, other): ... | ||
| def __ne__(self, other): ... | ||
| def __len__(self): ... | ||
| def strip(self): ... | ||
|
|
||
| class MathError(ExceptionCauseMixin, ValueError): ... |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,76 @@ | ||
| from _typeshed import Incomplete | ||
| from collections.abc import Generator | ||
|
|
||
| def mkdir_p(path) -> None: ... | ||
|
|
||
| class FilePerms: | ||
| class _FilePermProperty: | ||
| attribute: Incomplete | ||
| offset: Incomplete | ||
| def __init__(self, attribute, offset) -> None: ... | ||
| def __get__(self, fp_obj, type_: Incomplete | None = ...): ... | ||
| def __set__(self, fp_obj, value): ... | ||
| user: Incomplete | ||
| group: Incomplete | ||
| other: Incomplete | ||
| def __init__(self, user: str = ..., group: str = ..., other: str = ...) -> None: ... | ||
| @classmethod | ||
| def from_int(cls, i): ... | ||
| @classmethod | ||
| def from_path(cls, path): ... | ||
| def __int__(self): ... | ||
|
|
||
| def atomic_save(dest_path, **kwargs): ... | ||
|
|
||
| class AtomicSaver: | ||
| dest_path: Incomplete | ||
| overwrite: Incomplete | ||
| file_perms: Incomplete | ||
| overwrite_part: Incomplete | ||
| part_filename: Incomplete | ||
| rm_part_on_exc: Incomplete | ||
| text_mode: Incomplete | ||
| buffering: Incomplete | ||
| dest_dir: Incomplete | ||
| part_path: Incomplete | ||
| mode: Incomplete | ||
| open_flags: Incomplete | ||
| part_file: Incomplete | ||
| def __init__(self, dest_path, **kwargs) -> None: ... | ||
| def setup(self) -> None: ... | ||
| def __enter__(self): ... | ||
| def __exit__(self, exc_type, exc_val, exc_tb) -> None: ... | ||
|
|
||
| def iter_find_files( | ||
| directory, patterns, ignored: Incomplete | None = ..., include_dirs: bool = ... | ||
| ) -> Generator[Incomplete, None, None]: ... | ||
| def copy_tree(src, dst, symlinks: bool = ..., ignore: Incomplete | None = ...): ... | ||
|
|
||
| copytree = copy_tree | ||
| file = object | ||
|
|
||
| class DummyFile(file): | ||
| name: Incomplete | ||
| mode: Incomplete | ||
| closed: bool | ||
| errors: Incomplete | ||
| isatty: bool | ||
| encoding: Incomplete | ||
| newlines: Incomplete | ||
| softspace: int | ||
| def __init__(self, path, mode: str = ..., buffering: Incomplete | None = ...) -> None: ... | ||
| def close(self) -> None: ... | ||
| def fileno(self): ... | ||
| def flush(self) -> None: ... | ||
| def next(self) -> None: ... | ||
| def read(self, size: int = ...): ... | ||
| def readline(self, size: int = ...): ... | ||
| def readlines(self, size: int = ...): ... | ||
| def seek(self) -> None: ... | ||
| def tell(self): ... | ||
| def truncate(self) -> None: ... | ||
| def write(self, string) -> None: ... | ||
| def writelines(self, list_of_strings) -> None: ... | ||
| def __next__(self) -> None: ... | ||
| def __enter__(self) -> None: ... | ||
| def __exit__(self, exc_type, exc_val, exc_tb) -> None: ... |
Uh oh!
There was an error while loading. Please reload this page.