2023-03-26 17:40:32 +00:00
|
|
|
[project]
|
|
|
|
name = "mitmproxy"
|
|
|
|
description = "An interactive, SSL/TLS-capable intercepting proxy for HTTP/1, HTTP/2, and WebSockets."
|
|
|
|
readme = "README.md"
|
|
|
|
requires-python = ">=3.10"
|
|
|
|
license = {file="LICENSE"}
|
|
|
|
authors = [{name = "Aldo Cortesi", email = "aldo@corte.si"}]
|
|
|
|
maintainers = [{name = "Maximilian Hils", email = "mitmproxy@maximilianhils.com"}]
|
|
|
|
dynamic = ["version"]
|
|
|
|
|
|
|
|
classifiers = [
|
|
|
|
"License :: OSI Approved :: MIT License",
|
|
|
|
"Development Status :: 5 - Production/Stable",
|
|
|
|
"Environment :: Console :: Curses",
|
|
|
|
"Operating System :: MacOS",
|
|
|
|
"Operating System :: POSIX",
|
|
|
|
"Operating System :: Microsoft :: Windows",
|
|
|
|
"Programming Language :: Python :: 3 :: Only",
|
|
|
|
"Programming Language :: Python :: 3.10",
|
|
|
|
"Programming Language :: Python :: 3.11",
|
2023-10-31 17:57:21 +00:00
|
|
|
"Programming Language :: Python :: 3.12",
|
2023-03-26 17:40:32 +00:00
|
|
|
"Programming Language :: Python :: Implementation :: CPython",
|
|
|
|
"Topic :: Security",
|
|
|
|
"Topic :: Internet :: WWW/HTTP",
|
|
|
|
"Topic :: Internet :: Proxy Servers",
|
|
|
|
"Topic :: System :: Networking :: Monitoring",
|
|
|
|
"Topic :: Software Development :: Testing",
|
|
|
|
"Typing :: Typed",
|
|
|
|
]
|
|
|
|
|
|
|
|
# https://packaging.python.org/en/latest/discussions/install-requires-vs-requirements/#install-requires
|
|
|
|
# It is not considered best practice to use install_requires to pin dependencies to specific versions.
|
|
|
|
dependencies = [
|
2024-03-20 20:31:03 +00:00
|
|
|
"aioquic>=1.0.0,<2.0.0",
|
2023-06-02 10:07:01 +00:00
|
|
|
"asgiref>=3.2.10,<3.8",
|
2023-10-01 22:34:40 +00:00
|
|
|
"Brotli>=1.0,<1.2",
|
2023-03-26 17:40:32 +00:00
|
|
|
"certifi>=2019.9.11", # no semver here - this should always be on the last release!
|
2024-03-07 16:00:51 +00:00
|
|
|
"cryptography>=42.0,<42.1",
|
2023-10-01 22:26:28 +00:00
|
|
|
"flask>=1.1.1,<3.1",
|
2023-03-26 17:40:32 +00:00
|
|
|
"h11>=0.11,<0.15",
|
|
|
|
"h2>=4.1,<5",
|
|
|
|
"hyperframe>=6.0,<7",
|
|
|
|
"kaitaistruct>=0.10,<0.11",
|
|
|
|
"ldap3>=2.8,<2.10",
|
2024-01-04 09:53:13 +00:00
|
|
|
"mitmproxy_rs>=0.5.1,<0.6",
|
2023-03-26 17:40:32 +00:00
|
|
|
"msgpack>=1.0.0, <1.1.0",
|
|
|
|
"passlib>=1.6.5, <1.8",
|
|
|
|
"protobuf>=3.14,<5",
|
|
|
|
"pydivert>=2.0.3,<2.2; sys_platform == 'win32'",
|
2024-04-01 22:52:07 +00:00
|
|
|
"pyOpenSSL>=22.1,<24.2",
|
2023-07-01 22:27:07 +00:00
|
|
|
"pyparsing>=2.4.2,<3.2",
|
2023-03-26 17:40:32 +00:00
|
|
|
"pyperclip>=1.6.0,<1.9",
|
2023-11-02 09:52:35 +00:00
|
|
|
"ruamel.yaml>=0.16,<0.19",
|
2023-03-26 17:40:32 +00:00
|
|
|
"sortedcontainers>=2.3,<2.5",
|
|
|
|
"tornado>=6.2,<7",
|
2023-08-09 08:34:26 +00:00
|
|
|
"typing-extensions>=4.3,<5; python_version<'3.11'",
|
2023-03-26 17:40:32 +00:00
|
|
|
"urwid-mitmproxy>=2.1.1,<2.2",
|
|
|
|
"wsproto>=1.0,<1.3",
|
|
|
|
"publicsuffix2>=2.20190812,<3",
|
2023-11-02 09:52:45 +00:00
|
|
|
"zstandard>=0.11,<0.23",
|
2023-03-26 17:40:32 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[project.optional-dependencies]
|
|
|
|
dev = [
|
|
|
|
"click>=7.0,<8.2",
|
|
|
|
"hypothesis>=5.8,<7",
|
|
|
|
"pdoc>=4.0.0",
|
Bump pyinstaller from 6.3.0 to 6.4.0 (#6702)
Bumps [pyinstaller](https://github.com/pyinstaller/pyinstaller) from
6.3.0 to 6.4.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/pyinstaller/pyinstaller/releases">pyinstaller's
releases</a>.</em></p>
<blockquote>
<h2>v6.4.0</h2>
<p>Please see the <a
href="https://pyinstaller.org/en/v6.4.0/CHANGES.html#id1">v6.4.0 section
of the changelog</a> for a list of the changes since v6.3.0.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pyinstaller/pyinstaller/blob/develop/doc/CHANGES.rst">pyinstaller's
changelog</a>.</em></p>
<blockquote>
<h2>6.4.0 (2024-02-10)</h2>
<p>Features</p>
<pre><code>
* (Linux) Collect ``.hmac`` files accompanying shared libraries, if such
files
are available. This allows frozen application to run on FIPS-enabled Red
Hat
Enterprise systems, where HMAC is required by self-check implemented by
the
OpenSSL crypto library. Furthermore, ensure that shared libraries with
accompanying ``.hmac`` files are exempted from any additional processing
(for
example, when building with :option:`--strip` option) to avoid
invalidating
the HMAC. (:issue:`8273`)
* (Windows) Make bootloader codepaths involved in creation of temporary
directories for ``onefile`` builds AppContainer-aware. If the process
runs
inside an AppContainer, the temporary directory's DACL needs to
explicitly
include the AppContainerSID, otherwise the directory becomes
inaccessible to
the process. (:issue:`8291`)
* (Windows) Make Windows implementation of PyInstaller's
``_pyi_rth_utils.tempdir.secure_mkdir`` (used by ``matplotlib`` and
``win32com`` run-time hooks to create temporary directories)
AppContainer-aware. If the process runs inside an AppContainer, the
temporary
directory's DACL needs to explicitly include the AppContainerSID,
otherwise
the directory becomes inaccessible to the process. (:issue:`8290`)
* Implement strict Qt dependency validation for collection of Qt plugins
and QML
components/plugins. We now perform preliminary binary dependency
analysis of
the plugins, and automatically exclude plugins that have at least one
missing
Qt dependency. This prevents collection of plugins that cannot be used
anyway
because of a missing Qt shared library (that is, for example, omitted
from a
PyPI wheel). Furthermore, we disallow Qt dependencies of a plugin to be
resolved outside of the primary location of Qt shared libraries, in
order to
prevent missing dependencies from pulling in Qt libraries from
alternative
locations that happen to be in the search path (for example, when using
``PyQt5`` PyPI wheels while also having a system-installed Qt5 on Linux,
a
Homebrew-installed Qt5 on macOS, or a custom Windows Qt5 build that
happens to
be in ``PATH``). (:issue:`8226`)
<p>Bugfix</p>
<pre><code>
* (Linux) Prevent collection of ``libcuda.so.1``, which is part of
NVIDIA
driver and must match the rest of the driver's components. Collecting
a copy might lead to issues when build and target system use different
versions of NVIDIA driver. (:issue:`8278`)
* (macOS) When validating the macOS SDK version of collected binaries,
handle errors raised by ``osxutils.get_macos_sdk_version``; log a
warning about failed version query, and add the offending binary to
the list of potentially problematic binaries to warn the user about.
(:issue:`8220`)
&lt;/tr&gt;&lt;/table&gt;
</code></pre>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pyinstaller/pyinstaller/commit/90256f93ed943daf6de53c7dd39710a415f705cb"><code>90256f9</code></a>
Release v6.4.0. [skip ci]</li>
<li><a
href="https://github.com/pyinstaller/pyinstaller/commit/4aabd10778f288b6b952117c9679ca596c8d196d"><code>4aabd10</code></a>
bootloader: update bundled zlib to 1.3.1</li>
<li><a
href="https://github.com/pyinstaller/pyinstaller/commit/1516019dd16f04ece9a2af15f0267e7aa2773f34"><code>1516019</code></a>
bootloader: make creation of temporary directories
AppContainer-aware</li>
<li><a
href="https://github.com/pyinstaller/pyinstaller/commit/14a68ab536f7f73786c17c03abd89f8afc76754f"><code>14a68ab</code></a>
bootloader: refactor pyi_win32_mkdir</li>
<li><a
href="https://github.com/pyinstaller/pyinstaller/commit/08e2ee5bcc3da0e0680accc87e556d42ed0d9f01"><code>08e2ee5</code></a>
building: process_collected_binary: warn on strip/upx
failures</li>
<li><a
href="https://github.com/pyinstaller/pyinstaller/commit/890460069b2fb49bf40efbd49066d48a2781f1a8"><code>8904600</code></a>
building: avoid applying upx/strip to linux binaries with .hmac
files</li>
<li><a
href="https://github.com/pyinstaller/pyinstaller/commit/473abda7715233dbc4f703e9b743670144d2cdf4"><code>473abda</code></a>
building: refactor process_collected_binary</li>
<li><a
href="https://github.com/pyinstaller/pyinstaller/commit/4f7ec5b8496211d73295742c0d91a4c2c3a9a4f5"><code>4f7ec5b</code></a>
building: process_collected_binaries: remove check for .manifest
file</li>
<li><a
href="https://github.com/pyinstaller/pyinstaller/commit/3a6c742a35f8a94f8a75ee57708c4d682c25579f"><code>3a6c742</code></a>
building: utils: switch bincache hashes from md5 to sha1</li>
<li><a
href="https://github.com/pyinstaller/pyinstaller/commit/7caa3adbd24aaae51d08c10c40fcf4fec23e856d"><code>7caa3ad</code></a>
building: collect .hmac files for linux shared libraries</li>
<li>Additional commits viewable in <a
href="https://github.com/pyinstaller/pyinstaller/compare/v6.3.0...v6.4.0">compare
view</a></li>
</ul>
</details>
<br />
</code></pre>
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pyinstaller&package-manager=pip&previous-version=6.3.0&new-version=6.4.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-05 13:52:35 +00:00
|
|
|
"pyinstaller==6.4.0",
|
2024-01-04 09:53:13 +00:00
|
|
|
"pytest-asyncio>=0.23,<0.24",
|
2023-06-02 10:06:45 +00:00
|
|
|
"pytest-cov>=2.7.1,<4.2",
|
2023-11-02 09:52:23 +00:00
|
|
|
"pytest-timeout>=1.3.3,<2.3",
|
Update pytest-xdist requirement from <3.4,>=2.1.0 to >=2.1.0,<3.6 (#6517)
Updates the requirements on
[pytest-xdist](https://github.com/pytest-dev/pytest-xdist) to permit the
latest version.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pytest-dev/pytest-xdist/blob/master/CHANGELOG.rst">pytest-xdist's
changelog</a>.</em></p>
<blockquote>
<h1>pytest-xdist 3.5.0 (2023-11-21)</h1>
<h2>Features</h2>
<ul>
<li><code>[#632](https://github.com/pytest-dev/pytest-xdist/issues/632)
<https://github.com/pytest-dev/pytest-xdist/issues/632></code>_:
<code>--dist=loadscope</code> now sorts scopes by number of tests to
assign largest scopes early -- in many cases this should improve overall
test session running time, as there is less chance of a large scope
being left to be processed near the end of the session, leaving other
workers idle.</li>
</ul>
<h1>pytest-xdist 3.4.0 (2023-11-11)</h1>
<h2>Features</h2>
<ul>
<li>
<p><code>[#963](https://github.com/pytest-dev/pytest-xdist/issues/963)
<https://github.com/pytest-dev/pytest-xdist/issues/963></code>_:
Wait for workers to finish reporting when test run stops early.</p>
<p>This makes sure that the results of in-progress tests are displayed.
Previously these reports were being discarded, losing information about
the
test run.</p>
</li>
<li>
<p><code>[#965](https://github.com/pytest-dev/pytest-xdist/issues/965)
<https://github.com/pytest-dev/pytest-xdist/issues/965></code>_:
Added support for Python 3.12.</p>
</li>
</ul>
<h1>pytest-xdist 3.3.1 (2023-05-19)</h1>
<h2>Bug Fixes</h2>
<ul>
<li>
<p><code>[#907](https://github.com/pytest-dev/pytest-xdist/issues/907)
<https://github.com/pytest-dev/pytest-xdist/issues/907></code>_:
Avoid remote calls during startup as <code>execnet</code> by default
does not ensure remote affinity with the
main thread and might accidentally schedule the pytest worker into a
non-main thread, which breaks numerous frameworks,
for example <code>asyncio</code>, <code>anyio</code>,
<code>PyQt/PySide</code>, etc.</p>
<p>A more safe correction will require thread affinity in
<code>execnet</code> (<code>pytest-dev/execnet#96
<https://github.com/pytest-dev/execnet/issues/96></code>__).</p>
</li>
</ul>
<h1>pytest-xdist 3.3.0 (2023-05-12)</h1>
<h2>Features</h2>
<ul>
<li><code>[#555](https://github.com/pytest-dev/pytest-xdist/issues/555)
<https://github.com/pytest-dev/pytest-xdist/issues/555></code>_:
Improved progress output when collecting nodes to be less verbose.</li>
</ul>
<h1>pytest-xdist 3.2.1 (2023-03-12)</h1>
<p>Bug Fixes</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/95b309e980796a261045d770f69c016ca741473d"><code>95b309e</code></a>
Release 3.5.0</li>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/3fe877bc6d7211f31e55d2d561803f76ea95b935"><code>3fe877b</code></a>
LoadScope scheduler: Sort scopes by number of tests to assign biggest
scopes ...</li>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/f36ea25cb53cb960037f4a8510816b81fa313035"><code>f36ea25</code></a>
Create GitHub release after deploy (<a
href="https://redirect.github.com/pytest-dev/pytest-xdist/issues/973">#973</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/d81f57508d064915fc16ace5dea4d43406db2ba0"><code>d81f575</code></a>
Merge pull request <a
href="https://redirect.github.com/pytest-dev/pytest-xdist/issues/969">#969</a>
from pytest-dev/pre-commit-ci-update-config</li>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/1d2616418c046d0e6f059b8f76e35a0627409616"><code>1d26164</code></a>
[pre-commit.ci] pre-commit autoupdate</li>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/5f43575b42d6d4c0078de807880b8b0791b75823"><code>5f43575</code></a>
Merge pull request <a
href="https://redirect.github.com/pytest-dev/pytest-xdist/issues/966">#966</a>
from pytest-dev/release-3.4.0</li>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/a6b56112f9b686aed7a354e0d50ecc26ad2d9dfe"><code>a6b5611</code></a>
Update CHANGELOG</li>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/64f9388f4164e9f64d98a7580933e958ea4a09d5"><code>64f9388</code></a>
Add support for Python 3.12</li>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/230ba6ad1057574c9f3d42a97f890788cd9ec6c3"><code>230ba6a</code></a>
Properly wait for workers when test run terminates early (<a
href="https://redirect.github.com/pytest-dev/pytest-xdist/issues/963">#963</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/93ca202b400eecc62919bcd9b0bab001e3f3f7ef"><code>93ca202</code></a>
fix typo index -> instead</li>
<li>Additional commits viewable in <a
href="https://github.com/pytest-dev/pytest-xdist/compare/v2.1.0...v3.5.0">compare
view</a></li>
</ul>
</details>
<br />
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-02 00:02:36 +00:00
|
|
|
"pytest-xdist>=2.1.0,<3.6",
|
2024-02-01 22:21:58 +00:00
|
|
|
"pytest>=6.1.0,<9",
|
2023-03-26 17:40:32 +00:00
|
|
|
"requests>=2.9.1,<3",
|
|
|
|
"tox>=3.5,<5",
|
2023-12-02 00:02:54 +00:00
|
|
|
"wheel>=0.36.2,<0.43",
|
2023-03-26 17:40:32 +00:00
|
|
|
"build>=0.10.0",
|
|
|
|
]
|
|
|
|
|
|
|
|
[project.urls]
|
|
|
|
Homepage = "https://mitmproxy.org"
|
|
|
|
Source = "https://github.com/mitmproxy/mitmproxy/"
|
|
|
|
Documentation = "https://docs.mitmproxy.org/stable/"
|
|
|
|
Issues = "https://github.com/mitmproxy/mitmproxy/issues"
|
|
|
|
|
|
|
|
[project.scripts]
|
|
|
|
mitmproxy = "mitmproxy.tools.main:mitmproxy"
|
|
|
|
mitmdump = "mitmproxy.tools.main:mitmdump"
|
|
|
|
mitmweb = "mitmproxy.tools.main:mitmweb"
|
|
|
|
|
|
|
|
[project.entry-points.pyinstaller40]
|
|
|
|
hook-dirs = "mitmproxy.utils.pyinstaller:hook_dirs"
|
|
|
|
|
|
|
|
[build-system]
|
|
|
|
requires = ["setuptools"]
|
|
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
|
|
|
|
[tool.setuptools.dynamic]
|
|
|
|
version = {attr = "mitmproxy.version.VERSION"}
|
|
|
|
|
|
|
|
[tool.setuptools.packages.find]
|
|
|
|
include = ["mitmproxy*"]
|
|
|
|
|
|
|
|
[tool.coverage.run]
|
|
|
|
branch = false
|
|
|
|
omit = [
|
|
|
|
"*contrib*",
|
|
|
|
"*tnetstring*",
|
|
|
|
"*platform*",
|
|
|
|
"*main.py",
|
|
|
|
]
|
|
|
|
|
|
|
|
[tool.coverage.report]
|
|
|
|
show_missing = true
|
|
|
|
exclude_lines = [
|
|
|
|
"pragma: no cover",
|
|
|
|
"raise NotImplementedError",
|
|
|
|
"raise AssertionError",
|
|
|
|
"if typing.TYPE_CHECKING:",
|
|
|
|
"if TYPE_CHECKING:",
|
|
|
|
"@overload",
|
|
|
|
"@abstractmethod",
|
|
|
|
"assert_never",
|
|
|
|
"\\.\\.\\.",
|
|
|
|
]
|
|
|
|
|
|
|
|
[tool.pytest.ini_options]
|
|
|
|
asyncio_mode = "auto"
|
|
|
|
testpaths = "test"
|
|
|
|
addopts = "--capture=no --color=yes"
|
|
|
|
filterwarnings = [
|
|
|
|
"ignore::DeprecationWarning:tornado.*:",
|
2024-01-04 09:53:13 +00:00
|
|
|
"ignore:datetime.datetime.utcnow:DeprecationWarning:aioquic.*:",
|
2023-12-12 18:15:19 +00:00
|
|
|
"error::RuntimeWarning",
|
|
|
|
"error::pytest.PytestUnraisableExceptionWarning",
|
2024-01-04 09:53:13 +00:00
|
|
|
# The following warning should only appear on Python 3.11 and below where eager_task_factory is not present
|
|
|
|
"default:coroutine 'ConnectionHandler.hook_task' was never awaited:RuntimeWarning",
|
2023-03-26 17:40:32 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[tool.mypy]
|
|
|
|
check_untyped_defs = true
|
|
|
|
ignore_missing_imports = true
|
|
|
|
files = [
|
|
|
|
"mitmproxy",
|
|
|
|
"examples/addons",
|
|
|
|
"release/*.py",
|
|
|
|
]
|
|
|
|
exclude = [
|
|
|
|
"^docs/",
|
|
|
|
"^release/build/",
|
|
|
|
"^examples/contrib/",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[tool.mypy.overrides]]
|
|
|
|
module = "mitmproxy.contrib.*"
|
|
|
|
ignore_errors = true
|
|
|
|
|
|
|
|
[[tool.mypy.overrides]]
|
|
|
|
module = "tornado.*"
|
|
|
|
ignore_errors = true
|
|
|
|
|
|
|
|
[[tool.mypy.overrides]]
|
|
|
|
module = "test.*"
|
|
|
|
ignore_errors = true
|
|
|
|
|
2023-10-31 15:03:53 +00:00
|
|
|
[tool.ruff]
|
|
|
|
select = ["E", "F", "I"]
|
|
|
|
extend-exclude = ["mitmproxy/contrib/"]
|
|
|
|
ignore = ["F541", "E501"]
|
|
|
|
|
|
|
|
|
|
|
|
[tool.ruff.isort]
|
|
|
|
# these rules are a bit weird, but they mimic our existing reorder_python_imports style.
|
|
|
|
# if we break compatibility here, consider removing all customization + enforce absolute imports.
|
|
|
|
force-single-line = true
|
|
|
|
order-by-type = false
|
|
|
|
section-order = ["future", "standard-library", "third-party", "local-folder","first-party"]
|
|
|
|
no-lines-before = ["first-party"]
|
|
|
|
known-first-party = ["test", "mitmproxy"]
|
2023-06-25 23:26:21 +00:00
|
|
|
|
2023-03-26 17:40:32 +00:00
|
|
|
[tool.tox]
|
|
|
|
legacy_tox_ini = """
|
|
|
|
[tox]
|
2023-10-31 15:03:53 +00:00
|
|
|
envlist = py, lint, mypy
|
2023-03-26 17:40:32 +00:00
|
|
|
skipsdist = True
|
|
|
|
toxworkdir={env:TOX_WORK_DIR:.tox}
|
|
|
|
|
|
|
|
[testenv]
|
|
|
|
deps =
|
|
|
|
-e .[dev]
|
|
|
|
setenv = HOME = {envtmpdir}
|
|
|
|
commands =
|
|
|
|
mitmdump --version
|
|
|
|
pytest --timeout 60 -vv --cov-report xml \
|
|
|
|
--continue-on-collection-errors \
|
|
|
|
--cov=mitmproxy --cov=release \
|
|
|
|
--full-cov=mitmproxy/ \
|
|
|
|
{posargs}
|
|
|
|
|
2023-10-31 15:03:53 +00:00
|
|
|
[testenv:lint]
|
2023-03-26 17:40:32 +00:00
|
|
|
deps =
|
2023-10-31 15:03:53 +00:00
|
|
|
ruff>=0.1.3,<0.2
|
2023-03-26 17:40:32 +00:00
|
|
|
commands =
|
2023-10-31 15:03:53 +00:00
|
|
|
ruff .
|
2023-03-26 17:40:32 +00:00
|
|
|
|
|
|
|
[testenv:filename_matching]
|
|
|
|
deps =
|
|
|
|
commands =
|
|
|
|
python ./test/filename_matching.py
|
|
|
|
|
|
|
|
[testenv:mypy]
|
|
|
|
deps =
|
2023-10-31 17:57:21 +00:00
|
|
|
mypy==1.6.1
|
2023-03-26 17:40:32 +00:00
|
|
|
types-certifi==2021.10.8.3
|
|
|
|
types-Flask==1.1.6
|
|
|
|
types-Werkzeug==1.0.9
|
2023-10-31 17:57:21 +00:00
|
|
|
types-requests==2.31.0.10
|
2023-03-26 17:40:32 +00:00
|
|
|
types-cryptography==3.3.23.2
|
2023-10-31 17:57:21 +00:00
|
|
|
types-pyOpenSSL==23.3.0.0
|
2023-03-26 17:40:32 +00:00
|
|
|
-e .[dev]
|
|
|
|
|
|
|
|
commands =
|
|
|
|
mypy {posargs}
|
|
|
|
|
|
|
|
[testenv:individual_coverage]
|
|
|
|
commands =
|
|
|
|
python ./test/individual_coverage.py {posargs}
|
|
|
|
|
|
|
|
[testenv:wheeltest]
|
|
|
|
recreate = True
|
|
|
|
deps =
|
|
|
|
commands =
|
|
|
|
pip install {posargs}
|
|
|
|
mitmproxy --version
|
|
|
|
mitmdump --version
|
|
|
|
mitmweb --version
|
|
|
|
"""
|