annotate mercurial/typelib.py @ 53035:6e1eb7212633 stable

nightly-build: attempt to no longer choke on existing file When we run the job multiple time, the upload step fails because the file always exists. So we pass the `--skip-existing` flag that is supposed to help with that? when supported. This might have no effect outside of upload to PyPI as the doc says: Continue uploading files if one already exists. (Only valid when uploading to PyPI. Other implementations may not support this.)
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Mon, 10 Mar 2025 14:28:33 +0100
parents 82e2c99c84f3
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
49888
8147abc05794 pytype: stop excluding mercurial/ui.py
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
1 # typelib.py - type hint aliases and support
8147abc05794 pytype: stop excluding mercurial/ui.py
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
2 #
8147abc05794 pytype: stop excluding mercurial/ui.py
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
3 # Copyright 2022 Matt Harbison <matt_harbison@yahoo.com>
8147abc05794 pytype: stop excluding mercurial/ui.py
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
4 #
8147abc05794 pytype: stop excluding mercurial/ui.py
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
5 # This software may be used and distributed according to the terms of the
8147abc05794 pytype: stop excluding mercurial/ui.py
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
6 # GNU General Public License version 2 or any later version.
8147abc05794 pytype: stop excluding mercurial/ui.py
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
7
51902
1c5810ce737e typing: add `from __future__ import annotations` to remaining source files
Matt Harbison <matt_harbison@yahoo.com>
parents: 51790
diff changeset
8 from __future__ import annotations
1c5810ce737e typing: add `from __future__ import annotations` to remaining source files
Matt Harbison <matt_harbison@yahoo.com>
parents: 51790
diff changeset
9
49888
8147abc05794 pytype: stop excluding mercurial/ui.py
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
10 import typing
8147abc05794 pytype: stop excluding mercurial/ui.py
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
11
51790
43460c311c0c typing: add trivial type hints to `mercurial.scmutil`
Matt Harbison <matt_harbison@yahoo.com>
parents: 51775
diff changeset
12 from typing import (
43460c311c0c typing: add trivial type hints to `mercurial.scmutil`
Matt Harbison <matt_harbison@yahoo.com>
parents: 51775
diff changeset
13 Callable,
43460c311c0c typing: add trivial type hints to `mercurial.scmutil`
Matt Harbison <matt_harbison@yahoo.com>
parents: 51775
diff changeset
14 )
43460c311c0c typing: add trivial type hints to `mercurial.scmutil`
Matt Harbison <matt_harbison@yahoo.com>
parents: 51775
diff changeset
15
49888
8147abc05794 pytype: stop excluding mercurial/ui.py
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
16 # Note: this is slightly different from pycompat.TYPE_CHECKING, as using
8147abc05794 pytype: stop excluding mercurial/ui.py
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
17 # pycompat causes the BinaryIO_Proxy type to be resolved to ``object`` when
8147abc05794 pytype: stop excluding mercurial/ui.py
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
18 # used as the base class during a pytype run.
8147abc05794 pytype: stop excluding mercurial/ui.py
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
19 TYPE_CHECKING = typing.TYPE_CHECKING
8147abc05794 pytype: stop excluding mercurial/ui.py
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
20
8147abc05794 pytype: stop excluding mercurial/ui.py
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
21
8147abc05794 pytype: stop excluding mercurial/ui.py
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
22 # The BinaryIO class provides empty methods, which at runtime means that
8147abc05794 pytype: stop excluding mercurial/ui.py
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
23 # ``__getattr__`` on the proxy classes won't get called for the methods that
8147abc05794 pytype: stop excluding mercurial/ui.py
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
24 # should delegate to the internal object. So to avoid runtime changes because
8147abc05794 pytype: stop excluding mercurial/ui.py
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
25 # of the required typing inheritance, just use BinaryIO when typechecking, and
8147abc05794 pytype: stop excluding mercurial/ui.py
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
26 # ``object`` otherwise.
8147abc05794 pytype: stop excluding mercurial/ui.py
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
27 if TYPE_CHECKING:
8147abc05794 pytype: stop excluding mercurial/ui.py
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
28 from typing import (
8147abc05794 pytype: stop excluding mercurial/ui.py
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
29 BinaryIO,
51775
f3b34386d3e0 typing: add type hints to `mercurial.dirstatemap`
Matt Harbison <matt_harbison@yahoo.com>
parents: 49888
diff changeset
30 Union,
f3b34386d3e0 typing: add type hints to `mercurial.dirstatemap`
Matt Harbison <matt_harbison@yahoo.com>
parents: 49888
diff changeset
31 )
f3b34386d3e0 typing: add type hints to `mercurial.dirstatemap`
Matt Harbison <matt_harbison@yahoo.com>
parents: 49888
diff changeset
32
f3b34386d3e0 typing: add type hints to `mercurial.dirstatemap`
Matt Harbison <matt_harbison@yahoo.com>
parents: 49888
diff changeset
33 from . import (
f3b34386d3e0 typing: add type hints to `mercurial.dirstatemap`
Matt Harbison <matt_harbison@yahoo.com>
parents: 49888
diff changeset
34 node,
f3b34386d3e0 typing: add type hints to `mercurial.dirstatemap`
Matt Harbison <matt_harbison@yahoo.com>
parents: 49888
diff changeset
35 posix,
52116
82e2c99c84f3 cachestat: avoid creating cachestat for http path
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51902
diff changeset
36 util,
51775
f3b34386d3e0 typing: add type hints to `mercurial.dirstatemap`
Matt Harbison <matt_harbison@yahoo.com>
parents: 49888
diff changeset
37 windows,
49888
8147abc05794 pytype: stop excluding mercurial/ui.py
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
38 )
8147abc05794 pytype: stop excluding mercurial/ui.py
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
39
8147abc05794 pytype: stop excluding mercurial/ui.py
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
40 BinaryIO_Proxy = BinaryIO
52116
82e2c99c84f3 cachestat: avoid creating cachestat for http path
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51902
diff changeset
41 CacheStat = Union[
82e2c99c84f3 cachestat: avoid creating cachestat for http path
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51902
diff changeset
42 posix.cachestat,
82e2c99c84f3 cachestat: avoid creating cachestat for http path
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51902
diff changeset
43 windows.cachestat,
82e2c99c84f3 cachestat: avoid creating cachestat for http path
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51902
diff changeset
44 util.uncacheable_cachestat,
82e2c99c84f3 cachestat: avoid creating cachestat for http path
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51902
diff changeset
45 ]
51775
f3b34386d3e0 typing: add type hints to `mercurial.dirstatemap`
Matt Harbison <matt_harbison@yahoo.com>
parents: 49888
diff changeset
46 NodeConstants = node.sha1nodeconstants
49888
8147abc05794 pytype: stop excluding mercurial/ui.py
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
47 else:
51775
f3b34386d3e0 typing: add type hints to `mercurial.dirstatemap`
Matt Harbison <matt_harbison@yahoo.com>
parents: 49888
diff changeset
48 from typing import Any
f3b34386d3e0 typing: add type hints to `mercurial.dirstatemap`
Matt Harbison <matt_harbison@yahoo.com>
parents: 49888
diff changeset
49
49888
8147abc05794 pytype: stop excluding mercurial/ui.py
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
50 BinaryIO_Proxy = object
51775
f3b34386d3e0 typing: add type hints to `mercurial.dirstatemap`
Matt Harbison <matt_harbison@yahoo.com>
parents: 49888
diff changeset
51 CacheStat = Any
f3b34386d3e0 typing: add type hints to `mercurial.dirstatemap`
Matt Harbison <matt_harbison@yahoo.com>
parents: 49888
diff changeset
52 NodeConstants = Any
51790
43460c311c0c typing: add trivial type hints to `mercurial.scmutil`
Matt Harbison <matt_harbison@yahoo.com>
parents: 51775
diff changeset
53
43460c311c0c typing: add trivial type hints to `mercurial.scmutil`
Matt Harbison <matt_harbison@yahoo.com>
parents: 51775
diff changeset
54 # scmutil.getuipathfn() related callback.
43460c311c0c typing: add trivial type hints to `mercurial.scmutil`
Matt Harbison <matt_harbison@yahoo.com>
parents: 51775
diff changeset
55 UiPathFn = Callable[[bytes], bytes]