2014-10-01 18:41:58 +00:00
|
|
|
import os
|
2016-12-11 16:50:46 +00:00
|
|
|
from codecs import open
|
2010-02-16 04:09:07 +00:00
|
|
|
|
2017-12-30 16:54:23 +00:00
|
|
|
import re
|
2016-12-11 16:50:46 +00:00
|
|
|
from setuptools import setup, find_packages
|
2016-07-10 11:38:49 +00:00
|
|
|
|
2014-10-01 18:41:58 +00:00
|
|
|
# Based on https://github.com/pypa/sampleproject/blob/master/setup.py
|
|
|
|
# and https://python-packaging-user-guide.readthedocs.org/
|
2014-01-19 03:06:03 +00:00
|
|
|
|
2014-10-01 18:41:58 +00:00
|
|
|
here = os.path.abspath(os.path.dirname(__file__))
|
2014-01-19 03:06:03 +00:00
|
|
|
|
2015-09-16 01:59:06 +00:00
|
|
|
with open(os.path.join(here, 'README.rst'), encoding='utf-8') as f:
|
2014-08-29 16:18:52 +00:00
|
|
|
long_description = f.read()
|
2014-09-08 22:06:10 +00:00
|
|
|
|
2017-12-30 16:54:23 +00:00
|
|
|
with open(os.path.join(here, "mitmproxy", "version.py")) as f:
|
2018-06-02 19:37:44 +00:00
|
|
|
VERSION = re.search(r'VERSION = "(.+?)"', f.read()).group(1)
|
2016-12-11 16:50:46 +00:00
|
|
|
|
2010-02-16 04:09:07 +00:00
|
|
|
setup(
|
2014-09-08 22:06:10 +00:00
|
|
|
name="mitmproxy",
|
2016-12-11 16:50:46 +00:00
|
|
|
version=VERSION,
|
2014-09-08 22:06:10 +00:00
|
|
|
description="An interactive, SSL-capable, man-in-the-middle HTTP proxy for penetration testers and software developers.",
|
|
|
|
long_description=long_description,
|
2014-10-01 18:41:58 +00:00
|
|
|
url="http://mitmproxy.org",
|
2014-09-08 22:06:10 +00:00
|
|
|
author="Aldo Cortesi",
|
|
|
|
author_email="aldo@corte.si",
|
2014-10-01 18:41:58 +00:00
|
|
|
license="MIT",
|
2014-09-08 22:06:10 +00:00
|
|
|
classifiers=[
|
|
|
|
"License :: OSI Approved :: MIT License",
|
|
|
|
"Development Status :: 5 - Production/Stable",
|
|
|
|
"Environment :: Console",
|
|
|
|
"Environment :: Console :: Curses",
|
|
|
|
"Operating System :: MacOS :: MacOS X",
|
|
|
|
"Operating System :: POSIX",
|
2016-02-18 12:03:40 +00:00
|
|
|
"Operating System :: Microsoft :: Windows",
|
2014-09-08 22:06:10 +00:00
|
|
|
"Programming Language :: Python",
|
2016-07-09 08:29:12 +00:00
|
|
|
"Programming Language :: Python :: 3",
|
2016-10-17 05:41:47 +00:00
|
|
|
"Programming Language :: Python :: 3 :: Only",
|
2016-12-23 19:30:04 +00:00
|
|
|
"Programming Language :: Python :: 3.6",
|
2015-02-07 00:17:24 +00:00
|
|
|
"Programming Language :: Python :: Implementation :: CPython",
|
2014-09-08 22:06:10 +00:00
|
|
|
"Topic :: Security",
|
|
|
|
"Topic :: Internet",
|
|
|
|
"Topic :: Internet :: WWW/HTTP",
|
|
|
|
"Topic :: Internet :: Proxy Servers",
|
2015-09-07 14:05:16 +00:00
|
|
|
"Topic :: Software Development :: Testing"
|
|
|
|
],
|
2016-02-18 12:03:40 +00:00
|
|
|
packages=find_packages(include=[
|
|
|
|
"mitmproxy", "mitmproxy.*",
|
|
|
|
"pathod", "pathod.*",
|
|
|
|
]),
|
2014-10-01 18:41:58 +00:00
|
|
|
include_package_data=True,
|
2015-02-27 13:43:23 +00:00
|
|
|
entry_points={
|
2016-02-04 17:37:58 +00:00
|
|
|
'console_scripts': [
|
2016-10-19 02:25:39 +00:00
|
|
|
"mitmproxy = mitmproxy.tools.main:mitmproxy",
|
|
|
|
"mitmdump = mitmproxy.tools.main:mitmdump",
|
|
|
|
"mitmweb = mitmproxy.tools.main:mitmweb",
|
2016-02-18 12:03:40 +00:00
|
|
|
"pathod = pathod.pathod_cmdline:go_pathod",
|
|
|
|
"pathoc = pathod.pathoc_cmdline:go_pathoc"
|
2016-02-04 17:37:58 +00:00
|
|
|
]
|
|
|
|
},
|
|
|
|
# https://packaging.python.org/en/latest/requirements/#install-requires
|
|
|
|
# It is not considered best practice to use install_requires to pin dependencies to specific versions.
|
|
|
|
install_requires=[
|
2016-02-05 21:59:24 +00:00
|
|
|
"blinker>=1.4, <1.5",
|
2018-01-27 10:21:03 +00:00
|
|
|
"brotlipy>=0.7.0,<0.8",
|
2016-02-18 12:03:40 +00:00
|
|
|
"certifi>=2015.11.20.1", # no semver here - this should always be on the last release!
|
2017-05-24 08:36:29 +00:00
|
|
|
"click>=6.2, <7",
|
2018-07-27 08:02:52 +00:00
|
|
|
"cryptography>=2.1.4,<2.4",
|
2018-01-27 10:21:03 +00:00
|
|
|
"h2>=3.0.1,<4",
|
|
|
|
"hyperframe>=5.1.0,<6",
|
2018-02-07 12:06:29 +00:00
|
|
|
"kaitaistruct>=0.7,<0.9",
|
2018-04-14 17:10:15 +00:00
|
|
|
"ldap3>=2.5,<2.6",
|
2016-11-25 15:46:00 +00:00
|
|
|
"passlib>=1.6.5, <1.8",
|
2018-07-02 13:59:48 +00:00
|
|
|
"protobuf>=3.6.0, <3.7",
|
2017-12-11 16:04:33 +00:00
|
|
|
"pyasn1>=0.3.1,<0.5",
|
2018-05-24 21:48:45 +00:00
|
|
|
"pyOpenSSL>=17.5,<18.1",
|
2017-03-15 09:14:16 +00:00
|
|
|
"pyparsing>=2.1.3, <2.3",
|
2018-02-23 16:26:49 +00:00
|
|
|
"pyperclip>=1.6.0, <1.7",
|
2018-09-07 11:41:34 +00:00
|
|
|
"ruamel.yaml>=0.13.2, <0.15.61", # https://bitbucket.org/ruamel/yaml/issues/234/ruamelyamlsafe_load-includes-a-in-folded
|
2018-05-24 21:48:45 +00:00
|
|
|
"sortedcontainers>=1.5.4,<2.1",
|
2018-07-27 08:02:52 +00:00
|
|
|
"tornado>=4.3,<5.2",
|
2018-01-27 10:21:03 +00:00
|
|
|
"urwid>=2.0.1,<2.1",
|
2018-01-01 10:16:52 +00:00
|
|
|
"wsproto>=0.11.0,<0.12.0",
|
2016-02-04 17:37:58 +00:00
|
|
|
],
|
2014-09-08 22:06:10 +00:00
|
|
|
extras_require={
|
2016-02-04 17:37:58 +00:00
|
|
|
':sys_platform == "win32"': [
|
2017-10-22 16:06:44 +00:00
|
|
|
"pydivert>=2.0.3,<2.2",
|
2016-02-04 17:37:58 +00:00
|
|
|
],
|
|
|
|
'dev': [
|
2018-04-13 23:32:16 +00:00
|
|
|
"asynctest>=0.12.0",
|
2017-10-31 09:57:43 +00:00
|
|
|
"flake8>=3.5, <3.6",
|
2018-04-26 20:41:36 +00:00
|
|
|
"Flask>=1.0,<1.1",
|
2018-04-14 00:56:00 +00:00
|
|
|
"mypy>=0.590,<0.591",
|
2018-05-26 21:41:30 +00:00
|
|
|
"parver>=0.1,<2.0",
|
2018-04-04 02:52:24 +00:00
|
|
|
"pytest-asyncio>=0.8",
|
2018-01-27 10:21:03 +00:00
|
|
|
"pytest-cov>=2.5.1,<3",
|
|
|
|
"pytest-faulthandler>=1.3.1,<2",
|
|
|
|
"pytest-timeout>=1.2.1,<2",
|
|
|
|
"pytest-xdist>=1.22,<2",
|
|
|
|
"pytest>=3.3,<4",
|
2018-02-25 18:32:05 +00:00
|
|
|
"requests>=2.9.1, <3",
|
2018-07-27 08:02:52 +00:00
|
|
|
"tox>=3.0,<3.2",
|
All new documentation
This patch does a lot.
- Ditch sphinx in favor of hugo. This gives us complete control of the layout
and presentation of our docs. Henceforth, docs will be hosted on our website
rather than ReadTheDocs.
- Create a simple, clean doc layout and theme.
- Remove large parts of the documentaion. I've ditched anything that was a)
woefully out of date, b) too detailed, or c) too hard to maintain in the long
term.
- Huge updates to the docs themselves: completely rewrite addons documentation,
add docs for core concepts like commands and options, and revise and tweak a
lot of the existing docs.
With this patch, we're also changing the way we publish and maintain the docs.
From now on, we don't publish docs for every release. Instead, the website will
contain ONE set of docs for each major release. The online docs will be updated
if needed as minor releases are made. Docs are free to improve during minor
releases, but anything that changes behaviour sufficiently to require a doc
change warrants a new major release. This also leaves us free to progressively
update and improve docs out of step with our release cadence.
With this new scheme, I feel CI over the docs is less important. I've removed
it for now, but won't object if someone wants to add it back in.
2018-02-22 04:21:34 +00:00
|
|
|
"rstcheck>=2.2, <4.0",
|
2015-09-07 14:05:16 +00:00
|
|
|
],
|
2016-02-04 17:37:58 +00:00
|
|
|
'examples': [
|
2018-02-25 19:26:25 +00:00
|
|
|
"beautifulsoup4>=4.4.1, <4.7"
|
2016-02-04 17:37:58 +00:00
|
|
|
]
|
2015-09-07 14:05:16 +00:00
|
|
|
}
|
|
|
|
)
|