Skip to content

v2.4.0rc1 #777

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

Merged
merged 196 commits into from
Nov 28, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
196 commits
Select commit Hold shift + click to select a range
094cd2c
Add proxy auth test coverage (#496)
abhinavsingh Feb 3, 2021
2ebcd18
Update tox from 3.21.3 to 3.21.4 (#497)
pyup-bot Feb 3, 2021
2fa10a0
Update autopep8 from 1.5.4 to 1.5.5 (#499)
pyup-bot Feb 9, 2021
20fb794
Update pylint from 2.6.0 to 2.6.2 (#501)
pyup-bot Feb 16, 2021
864a0b8
Fix mypy errors (#504)
abhinavsingh Feb 21, 2021
fb8fc8b
Update tox from 3.21.4 to 3.22.0 (#502)
pyup-bot Feb 21, 2021
8a48f09
Update mypy from 0.790 to 0.812 (#503)
pyup-bot Feb 21, 2021
2f68456
Update pylint from 2.6.2 to 2.7.1 (#506)
pyup-bot Feb 24, 2021
617c0d2
Update coverage from 5.4 to 5.5 (#508)
pyup-bot Mar 1, 2021
5616698
Update pylint from 2.7.1 to 2.7.2 (#509)
pyup-bot Mar 1, 2021
2931045
Update tox from 3.22.0 to 3.23.0 (#510)
pyup-bot Mar 3, 2021
ff39a53
Update twine from 3.3.0 to 3.4.1 (#517)
pyup-bot Mar 18, 2021
12b8394
Update flake8 from 3.8.4 to 3.9.0 (#514)
pyup-bot Mar 18, 2021
cb93b08
Update autopep8 from 1.5.5 to 1.5.6 (#516)
pyup-bot Mar 18, 2021
c482321
Update py-spy from 0.3.3 to 0.3.5 (#522)
pyup-bot Mar 22, 2021
c09fc86
DeepSource: Code quality issues (#523)
akshgpt7 Mar 23, 2021
14c6cae
Update pylint from 2.7.2 to 2.7.3 (#524)
pyup-bot Mar 30, 2021
5551582
Bump y18n from 3.2.1 to 3.2.2 in /dashboard (#526)
dependabot[bot] Mar 30, 2021
e145e0b
Update pylint from 2.7.3 to 2.7.4 (#527)
pyup-bot Mar 31, 2021
2a0283b
Move wheel package to testing (#531)
abhinavsingh Apr 3, 2021
06a84ae
Update pytest from 6.2.2 to 6.2.3 (#532)
pyup-bot Apr 4, 2021
2e9c822
Update flake8 from 3.9.0 to 3.9.1 (#538)
pyup-bot Apr 16, 2021
74e5207
Update rope from 0.18.0 to 0.19.0 (#539)
pyup-bot Apr 19, 2021
f551581
Update pylint from 2.7.4 to 2.8.0 (#540)
pyup-bot Apr 25, 2021
3e8ae0c
Update pylint from 2.8.0 to 2.8.1 (#541)
pyup-bot Apr 25, 2021
29ba491
Update pylint from 2.8.1 to 2.8.2 (#542)
pyup-bot Apr 27, 2021
95c1b6f
Update autopep8 from 1.5.6 to 1.5.7 (#543)
pyup-bot Apr 30, 2021
5a82c66
Update typing-extensions from 3.7.4.3 to 3.10.0.0 (#544)
pyup-bot May 2, 2021
1b9ca71
Update pytest from 6.2.3 to 6.2.4 (#545)
pyup-bot May 4, 2021
92b44e1
Update tox from 3.23.0 to 3.23.1 (#546)
pyup-bot May 6, 2021
1a20c5f
Update py-spy from 0.3.5 to 0.3.6 (#547)
pyup-bot May 8, 2021
c0088b2
Update flake8 from 3.9.1 to 3.9.2 (#549)
pyup-bot May 9, 2021
43ff381
Bump hosted-git-info from 2.8.5 to 2.8.9 in /dashboard (#548)
dependabot[bot] May 11, 2021
88feecb
Bump lodash from 4.17.19 to 4.17.21 in /dashboard (#550)
dependabot[bot] May 12, 2021
88af8e2
Update pytest-cov from 2.11.1 to 2.12.0 (#552)
pyup-bot May 14, 2021
754d5a3
Update py-spy from 0.3.6 to 0.3.7 (#555)
pyup-bot May 16, 2021
525794b
Bump ws from 7.4.0 to 7.4.6 in /dashboard (#556)
dependabot[bot] May 29, 2021
d977fc7
Update pylint from 2.8.2 to 2.8.3 (#558)
pyup-bot Jun 1, 2021
8c1d20b
Update pytest-cov from 2.12.0 to 2.12.1 (#561)
pyup-bot Jun 2, 2021
8c7f81d
Bump glob-parent from 5.1.1 to 5.1.2 in /dashboard (#564)
dependabot[bot] Jun 12, 2021
8512f8b
Update pylint from 2.8.3 to 2.9.3 (#573)
pyup-bot Jul 3, 2021
d684d33
Update tox from 3.23.1 to 3.24.0 (#575)
pyup-bot Jul 18, 2021
d719215
Update twine from 3.4.1 to 3.4.2 (#576)
pyup-bot Jul 27, 2021
2041809
Update pylint from 2.9.3 to 2.9.5 (#577)
pyup-bot Jul 27, 2021
8e3684e
Update wheel from 0.36.2 to 0.37.0 (#585)
pyup-bot Aug 13, 2021
8975c8e
Update codecov from 2.1.11 to 2.1.12 (#582)
pyup-bot Aug 13, 2021
c8223db
Update typing-extensions from 3.10.0.0 to 3.10.0.2 (#599)
pyup-bot Sep 3, 2021
2882253
Update pytest from 6.2.4 to 6.2.5 (#598)
pyup-bot Sep 3, 2021
cc0fb04
Update tox from 3.24.0 to 3.24.3 (#592)
pyup-bot Sep 3, 2021
ea85d44
Update pylint from 2.9.5 to 2.10.2 (#591)
pyup-bot Sep 3, 2021
b7b10de
Bump path-parse from 1.0.6 to 1.0.7 in /dashboard (#586)
dependabot[bot] Sep 3, 2021
ece583f
Update py-spy from 0.3.7 to 0.3.9 (#604)
pyup-bot Sep 15, 2021
21d95d3
Update rope from 0.19.0 to 0.20.1 (#611)
pyup-bot Sep 22, 2021
b5ad9f2
Update pylint from 2.10.2 to 2.11.1 (#609)
pyup-bot Sep 22, 2021
bca5dd5
Update tox from 3.24.3 to 3.24.4 (#607)
pyup-bot Sep 22, 2021
df33b40
add paramiko types for mypy compliance (#613)
abhinavsingh Sep 22, 2021
4b4acae
Update py-spy from 0.3.9 to 0.3.10 (#616)
pyup-bot Sep 27, 2021
90a4b0c
Update coverage from 5.5 to 6.0 (#618)
pyup-bot Oct 3, 2021
a73d569
Update pytest-cov from 2.12.1 to 3.0.0 (#619)
pyup-bot Oct 4, 2021
bac1eba
Update types-paramiko from 2.7.0 to 2.7.1 (#620)
pyup-bot Oct 5, 2021
464897a
Update coverage from 6.0 to 6.0.1 (#623)
pyup-bot Oct 7, 2021
4a5d888
Update paramiko from 2.7.2 to 2.8.0 (#624)
pyup-bot Oct 10, 2021
a1217e0
Update coverage from 6.0.1 to 6.0.2 (#628)
pyup-bot Oct 12, 2021
574bb85
Update types-paramiko from 2.7.1 to 2.7.2 (#629)
pyup-bot Oct 13, 2021
64cb6d7
Update types-paramiko from 2.7.2 to 2.7.3 (#630)
pyup-bot Oct 15, 2021
1e33d37
Update rope from 0.20.1 to 0.21.0 (#631)
pyup-bot Oct 20, 2021
daa30d4
Update flake8 from 3.9.2 to 4.0.1 (#627)
pyup-bot Oct 29, 2021
3d8bf05
Add support for 3.10 (#637)
abhinavsingh Oct 29, 2021
7448c44
v3.4.0 (#638)
abhinavsingh Oct 29, 2021
03ed5d4
Update autopep8 from 1.5.7 to 1.6.0 (#632)
pyup-bot Oct 29, 2021
cb24389
Fix the `typing_extensions` runtime dependency version (#641)
webknjaz Oct 31, 2021
2f614e1
Update coverage from 6.0.2 to 6.1 (#640)
pyup-bot Oct 31, 2021
627645f
Fix path to dashboard.png (#643)
abhinavsingh Oct 31, 2021
fbbb917
[ImgBot] Optimize images (#644)
imgbot[bot] Oct 31, 2021
567d616
Update coverage from 6.1 to 6.1.1 (#646)
pyup-bot Oct 31, 2021
d4ee4fa
Async proxy pool, Event manager, Custom access log, Expose loop to pl…
abhinavsingh Oct 31, 2021
7606c1d
Add tox envs for building dists via PEP 517 (#647)
webknjaz Nov 1, 2021
fae694f
Revert "Upgrade `master` to `develop` in `setup.py`" (#650)
webknjaz Nov 2, 2021
426dfd5
Add a no-op check job to GHA for branch protection (#652)
webknjaz Nov 3, 2021
6aa53e2
Add a config for YAMLLint (#653)
webknjaz Nov 3, 2021
0e5ecec
Add a config for flake8 (#654)
webknjaz Nov 3, 2021
1bd9767
Correct spelling mistakes caught by `codespell` (#656)
webknjaz Nov 3, 2021
05f8a86
Add a config for pylint (#655)
webknjaz Nov 3, 2021
7ae8211
Organize the linting setup around tox+pre-commit (#657)
webknjaz Nov 3, 2021
cf6f7e4
Merge branch 'master' into develop
abhinavsingh Nov 3, 2021
9fa14d7
Enable yamllint for all previously ignored files (#658)
webknjaz Nov 4, 2021
eeb11e2
Add autocancellation of the stale PR GHA jobs (#663)
webknjaz Nov 4, 2021
d8bd694
Update twine from 3.4.2 to 3.5.0 (#665)
pyup-bot Nov 4, 2021
05a7856
Enable the `add-trailing-comma` pre-commit fixer (#661)
webknjaz Nov 4, 2021
7c5877b
Migrate the pytest invocation to `tox` (#662)
webknjaz Nov 4, 2021
a7cdcc8
Pre-install mypy deps in `pre-commit.ci` (#666)
webknjaz Nov 4, 2021
91a8fb1
Fix the YTT201 flake8 violation (#667)
webknjaz Nov 4, 2021
62969b8
Make names in the GHA lib workflow short (#669)
webknjaz Nov 4, 2021
2a9db3a
Update outdated sections of the codebase (#670)
abhinavsingh Nov 4, 2021
752146a
Make pytest emit XML coverage (#673)
webknjaz Nov 5, 2021
bf4ee90
CustomDnsResolver plugin, CloudflareDnsResolver plugin, Allow plugins…
abhinavsingh Nov 5, 2021
880c3c8
Add tests for missing core modules (#674)
abhinavsingh Nov 5, 2021
504ca53
Use core loop for reverse proxy async IO operations (#675)
abhinavsingh Nov 5, 2021
4b8b625
Collect coverage for `tests/` (#677)
webknjaz Nov 5, 2021
d3be2a1
Allow pylint to utilize all available CPU cores (#676)
webknjaz Nov 5, 2021
fba75a1
Add a config for Coverage.py (#679)
webknjaz Nov 5, 2021
b09d170
Add a config for pytest (#680)
webknjaz Nov 5, 2021
e9d012b
Ignore a `DeprecationWarning` in `pytest` config (#683)
webknjaz Nov 5, 2021
628de71
Adopt BaseTcpServerHandler within HttpProtocolHandler (#681)
abhinavsingh Nov 6, 2021
cc80e1c
Inline the dist description in pkg metadata (#684)
webknjaz Nov 6, 2021
423e9ce
Add a pytest-based test for catching import loops (#678)
webknjaz Nov 6, 2021
eff6c0d
Test built artifacts in the CI instead of Git src (#682)
webknjaz Nov 6, 2021
25b7952
Fix python 3.10 @ ubuntu pytest ignore (#685)
abhinavsingh Nov 6, 2021
6121fe9
must_flush_before_shutdown until entire client buffer has been flushe…
abhinavsingh Nov 6, 2021
9e9ca90
Readme Updates (#687)
abhinavsingh Nov 6, 2021
d9200fd
Response bodies can be empty or missing + HttpParser refactoring (#688)
abhinavsingh Nov 6, 2021
8a46337
[ModifyChunkResponsePlugin] Only bail out of body is not expected (#690)
abhinavsingh Nov 6, 2021
fd838ca
DEFAULT_CA_FILE is now certifi/cacert.pem (#691)
abhinavsingh Nov 6, 2021
462624f
Expose pre-commit tool hooks execution times (#692)
webknjaz Nov 6, 2021
da23c7f
Work (#693)
abhinavsingh Nov 6, 2021
d3cee32
Pool (#694)
abhinavsingh Nov 7, 2021
f48771f
Top-level notion of work not client (#695)
abhinavsingh Nov 7, 2021
b830f7b
Rename `Proxy.initialize` as `FlagParser.initialize` (#696)
abhinavsingh Nov 7, 2021
3cb0a62
Add a `--unix-socket-path` flag (#697)
abhinavsingh Nov 7, 2021
2c4ad46
Trigger workflows only when necessary file changes are detected (#699)
abhinavsingh Nov 7, 2021
a6d7fae
Disable static web server test on GHA environment (flaky on Ubuntu) (…
abhinavsingh Nov 7, 2021
7a415dc
Add `lib-dep` makefile target (#701)
abhinavsingh Nov 7, 2021
a8e3966
Put core flags where they belong (#702)
abhinavsingh Nov 7, 2021
78748f5
Update types-paramiko from 2.7.3 to 2.7.4 (#704)
pyup-bot Nov 8, 2021
db8da4f
Fix `--enable-dashboard` flags (#707)
abhinavsingh Nov 8, 2021
c6eaace
Move pid file write/remove within `AcceptorPool` (#708)
abhinavsingh Nov 8, 2021
aadcc10
`EventManager` is also a context manager (#709)
abhinavsingh Nov 8, 2021
98e6d0b
`--threadless` default for `Python 3.8+` on `mac` and `linux` (#710)
abhinavsingh Nov 8, 2021
fa18129
`OP_NO_TLSv1_1` by default for upstream connection negotiations (#712)
abhinavsingh Nov 8, 2021
fec9a14
Add more context in intro (#713)
abhinavsingh Nov 8, 2021
77b8735
Add an explicit config for darglint (#717)
webknjaz Nov 9, 2021
0a038ce
Add `--num-acceptors` flag + Allow `work_klass` via `Proxy` context m…
abhinavsingh Nov 9, 2021
df5a668
Update badges to match new GHA workflows (#718)
abhinavsingh Nov 9, 2021
df7f1c8
Add `Listener`, Web server close on header, use `Pipe` instead of `Ma…
abhinavsingh Nov 10, 2021
e38f1a8
Test cov (#721)
abhinavsingh Nov 10, 2021
ddf90fb
Allow `--plugins` flag to be used multiple times (#725)
abhinavsingh Nov 11, 2021
0739db6
Add `--proxy-pool` flag (#727)
abhinavsingh Nov 11, 2021
541da11
Custom Url Parser (#730)
abhinavsingh Nov 12, 2021
684c0d4
Add more info in log context (#732)
abhinavsingh Nov 12, 2021
094e30d
Allow `access_log` format override by web plugins (#733)
abhinavsingh Nov 12, 2021
523021c
Add `--auth-plugin` flag to override default basic auth plugin (#734)
abhinavsingh Nov 13, 2021
8d3fe87
Switch versioning to be SCM-based (#715)
webknjaz Nov 13, 2021
d72ee22
`--enable-proxy-protocol` : HAProxy Protocol v1 (#735)
abhinavsingh Nov 14, 2021
9704988
Reuse a pre-existing `version_tuple` from SCM
webknjaz Nov 14, 2021
7f1470e
No abstract method for proxy plugin (#738)
abhinavsingh Nov 14, 2021
5bdb0e3
Implement publishing via GHA (#716)
webknjaz Nov 15, 2021
a0d4e5e
Enable release-testpypi (#741)
abhinavsingh Nov 15, 2021
86da33a
Fix dist version in CI/CD on pushes to `develop` (#743)
webknjaz Nov 15, 2021
09c9b63
Fix homebrew formulae URL to install from git and not zip because of …
abhinavsingh Nov 15, 2021
b928c91
Merge branch 'develop' into maintenance/reuse-scm-tuple
abhinavsingh Nov 15, 2021
79f51e7
Add an example of loading external plugins
abhinavsingh Nov 17, 2021
22a2705
Move GHA e2e integration job to pytest (#746)
webknjaz Nov 17, 2021
5de3458
Make Git archives `setuptools-scm` compatible (#737)
webknjaz Nov 18, 2021
8ca0421
Merge branch 'develop' into maintenance/reuse-scm-tuple
abhinavsingh Nov 18, 2021
9314d05
Reuse a pre-existing `version_tuple` from SCM (#736)
abhinavsingh Nov 18, 2021
fa89944
Add initial Sphinx docs
webknjaz Nov 16, 2021
8052c90
Merge pull request #747 from webknjaz/docs/init
abhinavsingh Nov 18, 2021
658acd8
Handle invalid/malformed data from clients in HttpParser (#740)
JerryKwan Nov 18, 2021
2b3f0cb
Add all IANA assigned HTTP method names (#751)
abhinavsingh Nov 18, 2021
736747a
Fix Makefile to use tox for docs (#752)
webknjaz Nov 19, 2021
49f2f95
Include GitHub's CoC and security in Sphinx docs (#755)
webknjaz Nov 19, 2021
ac1dee9
Add community contribution guidelines (#757)
abhinavsingh Nov 19, 2021
42e3518
[IntegrationTest] Use `127.0.0.1` as target address and a random port…
abhinavsingh Nov 19, 2021
44c095a
Transparent `ProxyPy.png` (#759)
abhinavsingh Nov 19, 2021
3cfce52
Add `TcpUpstreamConnectionHandler` class (#760)
abhinavsingh Nov 19, 2021
5eb4fa4
Add `.vscode` settings (#761)
abhinavsingh Nov 19, 2021
9b3b662
Added `DEFAULT_SELECTOR_SELECT_TIMEOUT` (#762)
abhinavsingh Nov 19, 2021
c06cb75
Enhancements (#763)
abhinavsingh Nov 19, 2021
c59e8f8
Run push workflow only for push to master and develop branch (#764)
abhinavsingh Nov 19, 2021
852924e
Single workflow (#765)
abhinavsingh Nov 19, 2021
b54da38
Remove badge for deprecated workflows
abhinavsingh Nov 19, 2021
27f8503
[ImgBot] Optimize images (#766)
imgbot[bot] Nov 20, 2021
8fdddfd
Acceptors performance (#767)
abhinavsingh Nov 20, 2021
1a3331e
Include contributing guidelines in Sphinx docs (#771)
webknjaz Nov 22, 2021
4d3b2c5
Fix tox invocation in the doc make target (#772)
webknjaz Nov 22, 2021
d554b94
Declare project URLs in Python package metadata (#778)
webknjaz Nov 22, 2021
44d7243
Async `get_events`, `handle_event`, `handle_readables`, `handle_writa…
abhinavsingh Nov 23, 2021
ab5c155
Prune unnecessary directories from `sdist` package (#779)
abhinavsingh Nov 23, 2021
39f5996
Use proper email for the Git user in GHA (#781)
webknjaz Nov 24, 2021
7bea3c2
Publish a GitHub Release after tagging (#782)
webknjaz Nov 24, 2021
833eeba
Create `dependabot.yml` (#783)
abhinavsingh Nov 24, 2021
99fc17b
Optimize (#780)
abhinavsingh Nov 24, 2021
54baf62
Convert `recv` errors as warnings and not exceptions (#787)
abhinavsingh Nov 24, 2021
78d20d9
Update codecov config to include separate tests and lib sub-projects …
abhinavsingh Nov 24, 2021
9bba14f
Bump actions/cache from 2.1.5 to 2.1.7 (#784)
dependabot[bot] Nov 24, 2021
3704bb4
pip prod(deps): bump rope from 0.21.0 to 0.22.0 (#785)
dependabot[bot] Nov 24, 2021
8cec0bf
npm: bump chrome-devtools-frontend in /dashboard (#786)
dependabot[bot] Nov 24, 2021
c9dc889
pip prod(deps): bump types-paramiko from 2.7.4 to 2.8.1 (#799)
dependabot[bot] Nov 25, 2021
3ff7f21
npm: bump eslint-plugin-import from 2.22.1 to 2.25.3 in /dashboard (#…
dependabot[bot] Nov 25, 2021
e5e900f
Build docker container for all linux target architectures`386`, `amd6…
abhinavsingh Nov 25, 2021
40a6f50
Fix publishing a GitHub Release from GHA (#811)
webknjaz Nov 26, 2021
c5dd39a
pip prod(deps): bump coverage from 6.1.1 to 6.1.2 (#813)
dependabot[bot] Nov 26, 2021
48d7252
Fix matching requested version with Git tag in GHA (#815)
webknjaz Nov 27, 2021
43b267d
Fix the tagging condition in GHA build job (#816)
webknjaz Nov 28, 2021
d63ed29
Publish to TestPyPI from the release request jobs (#819)
webknjaz Nov 28, 2021
8a9cce1
Handle `KBI` (#821)
abhinavsingh Nov 28, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions .coveragerc
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
[paths]
source =
proxy
*/proxy
.tox/*/lib/python*/site-packages/proxy

[report]
skip_covered = true
show_missing = true
exclude_lines =
\#\s*pragma: no cover
^\s*raise AssertionError\b
^\s*raise NotImplementedError\b
^\s*return NotImplemented\b
^\s*raise$
^if __name__ == ['"]__main__['"]:$

[run]
branch = true
cover_pylib = false
parallel = true
relative_files = true
source =
proxy
tests
3 changes: 3 additions & 0 deletions .darglint
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[darglint]
docstring_style=sphinx
strictness=long
29 changes: 29 additions & 0 deletions .deepsource.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
version = 1

test_patterns = [
"tests/**",
"**/test_*.py"
]

exclude_patterns = [
"helper/**",
"menubar/**"
]

[[analyzers]]
name = "python"
enabled = true

[analyzers.meta]
runtime_version = "3.x.x"

[[analyzers]]
name = "javascript"
enabled = true

[analyzers.meta]
environment = [
"nodejs",
"browser"
]
dialect = "typescript"
8 changes: 1 addition & 7 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -1,11 +1,5 @@
# Ignore everything
**

# Except proxy
!proxy
!requirements.txt
!setup.py
!dist/*.whl
!README.md

# Ignore __pycache__ directory
proxy/__pycache__
248 changes: 248 additions & 0 deletions .flake8
Original file line number Diff line number Diff line change
@@ -0,0 +1,248 @@
[flake8]

# Don't even try to analyze these:
extend-exclude =
# No need to traverse egg info dir
*.egg-info,
# GitHub configs
.github,
# Cache files of MyPy
.mypy_cache,
# Cache files of pytest
.pytest_cache,
# Temp dir of pytest-testmon
.tmontmp,
# Occasional virtualenv dir
.venv,
# VS Code
.vscode,
# Temporary build dir
build,
# This contains sdists and wheels of proxy.py that we don't want to check
dist,
# Occasional virtualenv dir
env,
# Metadata of `pip wheel` cmd is autogenerated
pip-wheel-metadata,

# IMPORTANT: avoid using ignore option, always use extend-ignore instead
# Completely and unconditionally ignore the following errors:
extend-ignore =
I # flake8-isort is drunk + we have isort integrated into pre-commit
B009 # FIXME: `getattr()` called with a constant arg
C812 # FIXME: missing trailing comma
C819 # FIXME: inline trailing comma
D101
D102
D103
D105
D106
D107
D203
D205
D208
D209
D212
D213
D300
D400
D401
D402
D403
D404
D405
D407
D412
D413
D415
DAR101 # FIXME: undocumented docstring param
DAR201 # FIXME: no "returns" in docstring
DAR301 # FIXME: no "yields" in docstring
DAR401 # FIXME: no "raises" in docstring
E800 # FIXME: commented out code
N400 # FIXME: escaping with backslash at EOL
N801 # FIXME: class name should use ProudCamelCase
N802 # FIXME: func name should be lowercase
N816 # FIXME: mixed case var name
P101 # FIXME: format string with unindexed params
PT009 # FIXME: pytest encourages use of `assert`
PT018 # FIXME: use multiple `assert`s instead of one complex
Q000 # FIXME: inconsistent double quotes use when single ones are needed
Q001 # FIXME: use double quotes in multiline strings
Q002 # FIXME: use double quote docstrings
Q003 # FIXME: avoid escaping in-string quotes
RST201 # FIXME: missing trailing blank line in docstring
RST203 # FIXME: no trailing blank line in docstring
RST301 # FIXME: unexpected indent in docstring
S101 # FIXME: assertions are thrown away in optimized mode, needs audit
S104 # FIXME: bind-all interface listen
S105 # FIXME: hardcoded password?
S303 # FIXME: insecure hash func
S311 # FIXME: `random` needs auditing
S404 # FIXME: `subprocess` use needs auditing
S603 # FIXME: audit untrusted `subprocess.Popen` input
S607 # FIXME: running subprocess with a non-absolute executable path
WPS100 # FIXME: unhelpful module name
WPS102 # FIXME: incorrect module name pattern
WPS110 # FIXME: unhelpful var name
WPS111 # FIXME: too short var name
WPS114 # FIXME: underscored numbers in var name
WPS115 # FIXME: uppercase class attr
WPS118 # FIXME: long func name
WPS120 # FIXME: regular name w/ trailing underscore
WPS121 # FIXME: unused var used 0_O
WPS122 # FIXME: unused var definition 0_O
WPS201 # FIXME: too many imports
WPS202 # FIXME: too many mod members
WPS203 # FIXME: too many mod imported names
WPS204 # FIXME: too much copy-paste
WPS210 # FIXME: too many local vars
WPS211 # FIXME: too many "__init__()" args
WPS212 # FIXME: too many "return"s
WPS213 # FIXME: too many expressions
WPS214 # FIXME: too many methods
WPS216 # FIXME: too many decorators
WPS219 # FIXME: deep object access is unreadable
WPS220 # FIXME: deep code nesting
WPS221 # FIXME: too big inline complexity / tested instructions
WPS222 # FIXME: too much logic in condition
WPS223 # FIXME: the code is too branchy
WPS225 # FIXME: too many "except"s
WPS226 # FIXME: magic string constant used too much, put it in a var
WPS229 # FIXME: try/except should wrap exactly one instruction
WPS230 # FIXME: too many public instance attrs
WPS231 # FIXME: insane complexity/code nesting in a function
WPS232 # FIXME: module is too complex
WPS234 # FIXME: annotation is too complex
WPS235 # FIXME: too many imported names from a single module
WPS237 # FIXME: too complex f-string
WPS300 # local folder imports are needed
WPS301 # FIXME: dotted import
WPS305 # this project is Python 3 only and so f-strings are allowed
WPS306 # this project is Python 3 so it doesn't need an explicit class base
WPS313 # FIXME: parens after keyword
WPS317 # enforces weird indents
WPS318 # enforces weird indents
WPS319 # FIXME: asymmetric closing bracket
WPS320 # FIXME: multiline func type annotation
WPS322 # FIXME: inline multiline str
WPS323 # false-positive: %-formatting in logging
WPS324 # FIXME: inconsistent "return" in func
WPS326 # doesn't allow implicit string concat
WPS328 # FIXME: useless `while` node
WPS336 # FIXME: explicit string concat
WPS337 # FIXME: multiline conditions
WPS338 # FIXME: unordered class methods
WPS339 # FIXME: meaningless leading zeros in number
WPS349 # FIXME: redundant slice
WPS360 # FIXME: unnecessary r-string
WPS361 # FIXME: inconsistent comprehension structure
WPS403 # FIXME: `# noqa` overuse
WPS407 # FIXME: mutable mod const
WPS408 # FIXME: duplicate logical condition
WPS410 # allow `__all__`
WPS412 # FIXME: logic in `__init__`
WPS414 # FIXME: consusing unpacking target
WPS420 # FIXME: pointless keyword like `pass`
WPS421 # FIXME: call to `print()`
WPS425 # FIXME: bool non-keyword arg
WPS427 # FIXME: unreachable code
WPS428 # FIXME: pointless statement
WPS430 # FIXME: nested func
WPS431 # FIXME: nested class
WPS432 # FIXME: magic number w/o assigned context/name
WPS433 # FIXME: nested import
WPS437 # FIXME: protected attr access
WPS440 # FIXME: block vars overlap
WPS441 # FIXME: control var use after block
WPS442 # FIXME: outer scope var shadowing
WPS453 # FIXME: executable file w/o shebang
WPS454 # FIXME: don't raise a broad exception, use a specific one
WPS457 # FIXME: infinite `while`
WPS458 # FIXME: import collision
WPS460 # FIXME: single element unpacking
WPS464 # FIXME: empty comment
WPS501 # FIXME: "finally" in "try" w/o "except"
WPS504 # FIXME: invert a negated condition
WPS505 # FIXME: nested "try" in "try"
WPS507 # FIXME: useless `len()`
WPS508 # FIXME: misused `not` in if-clause
WPS509 # FIXME: incorrect ternary nesting
WPS510 # FIXME: if-clause with `in` operator w/ wrong set semantics
WPS513 # FIXME: implicit `elif`
WPS515 # FIXME: implicit `open()` w/o a CM
WPS518 # FIXME: implicit `enumerate()` pattern
WPS519 # FIXME: implicit `sum()` pattern
WPS528 # FIXME: implicit `dict.items()` pattern
WPS529 # FIXME: implicit `dict.get()` pattern
WPS531 # FIXME: simplifiable returning `if` in func
WPS602 # FIXME: `@staticmethod` is usually a code smell, use module funcs
WPS604 # FIXME: incorrect class body node
WPS605 # FIXME: method w/o args
WPS609 # FIXME: direct call to magic method
WPS612 # FIXME: useless `__init__()` override
WPS613 # FIXME: unmatching super method access
WPS615 # FIXME: unpythonic setter/getter

# https://wemake-python-stylegui.de/en/latest/pages/usage/formatter.html
format = wemake

# Let's not overcomplicate the code:
#max-complexity = 10
# FIXME: this is a lot!
max-complexity = 19

# Accessibility/large fonts and PEP8 friendly:
#max-line-length = 79
# Accessibility/large fonts and PEP8 unfriendly:
#max-line-length = 100
# Even more Accessibility/large fonts and PEP8 unfriendlier:
max-line-length = 127

# Allow certain violations in certain files:
per-file-ignores =

# E800 reports a lot of false-positives for legit
# tool-related comments;
# WPS412 logic of an extension is in __init__.py file;
# FIXME: WPS201 too many imports
# FIXME: WPS402 too many `noqa`s
#proxy/__init__.py: E800, WPS201, WPS402, WPS412

# There are multiple `assert`s (S101)
# and subprocesses (import – S404; call – S603) in tests;
# also, using fixtures looks like shadowing the outer scope (WPS442);
# and finally it's impossible to have <= members in tests (WPS202):
tests/**.py: S101, S404, S603, WPS202, WPS442

# wemake-python-styleguide
show-source = true

# flake8-pytest-style
# PT001:
pytest-fixture-no-parentheses = true
# PT006:
pytest-parametrize-names-type = tuple
# PT007:
pytest-parametrize-values-type = tuple
pytest-parametrize-values-row-type = tuple
# PT023:
pytest-mark-no-parentheses = true

# flake8-rst-docstrings
rst-directives =
spelling
rst-roles =
# Built-in Sphinx roles:
class,
data,
exc,
meth,
term,
py:class,
py:data,
py:exc,
py:meth,
py:term,
# Sphinx's internal role:
event,
1 change: 1 addition & 0 deletions .git_archival.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ref-names: $Format:%D$
5 changes: 5 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Force LF line endings for text files
* text=auto eol=lf

# Needed for setuptools-scm-git-archive
.git_archival.txt export-subst
2 changes: 2 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
---
open_collective: proxypy
...
4 changes: 4 additions & 0 deletions .github/buildkitd.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[worker.oci]
max-parallelism = 4
[registry."docker.io"]
mirrors = ["mirror.gcr.io"]
48 changes: 48 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
---
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates

version: 2
updates:
# Maintain dependencies for GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "daily"
# Allow up to 1 open pull requests
open-pull-requests-limit: 1
# Add reviewers
reviewers:
- abhinavsingh

# Maintain dependencies for npm
- package-ecosystem: "npm"
directory: "/dashboard"
schedule:
interval: "daily"
# Allow up to 1 open pull requests
open-pull-requests-limit: 1
reviewers:
- abhinavsingh
# Prefix all commit messages with "npm"
commit-message:
prefix: "npm"

# Maintain dependencies for pip
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "daily"
# Allow up to 1 open pull requests
open-pull-requests-limit: 1
reviewers:
- abhinavsingh
# Include a list of updated dependencies
# with a prefix determined by the dependency group
commit-message:
prefix: "pip prod"
prefix-development: "pip dev"
include: "scope"
...
Loading