Merge remote-tracking branch 'upstream/main' into feature/misp-galaxy-2

pull/682/head
Tom King 2021-02-08 11:50:38 +00:00
commit a94b81ae72
11 changed files with 484 additions and 94 deletions

View File

@ -33,7 +33,7 @@ jobs:
- name: Install Python dependencies - name: Install Python dependencies
run: | run: |
python -m pip install --upgrade pip poetry python -m pip install --upgrade pip poetry
poetry install -E fileobjects -E openioc -E virustotal -E docs -E pdfexport -E url -E email poetry install -E fileobjects -E openioc -E virustotal -E docs -E pdfexport -E url -E email -E brotli
- name: Test with nosetests - name: Test with nosetests
run: | run: |

View File

@ -2,6 +2,166 @@ Changelog
========= =========
v2.4.138 (2021-02-08)
---------------------
Changes
~~~~~~~
- Bump version. [Raphaël Vinot]
- Bump deps. [Raphaël Vinot]
v2.4.137.4 (2021-02-04)
-----------------------
Changes
~~~~~~~
- Bump changelog. [Raphaël Vinot]
- Bump version. [Raphaël Vinot]
- Bump objects. [Raphaël Vinot]
- Add kw_params to tags. [Raphaël Vinot]
- Bump objects. [Raphaël Vinot]
- Bump template ID in test case. [Raphaël Vinot]
v2.4.137.3 (2021-02-02)
-----------------------
Changes
~~~~~~~
- Bump version. [Raphaël Vinot]
- Bump changelog. [Raphaël Vinot]
- Bump objects. [Raphaël Vinot]
- Fix and improve optional dependencies. [Raphaël Vinot]
- Make brotli optional. [Raphaël Vinot]
v2.4.137.2 (2021-02-01)
-----------------------
New
~~~
- Add in ability to create/update/delete MISP Event Reports. [Tom King]
- Hard delete flag for objects. [Raphaël Vinot]
- Fail if a duplicate object is added to an event. [Raphaël Vinot]
- Support brotli compression. [Jakub Onderka]
- Hard delete flag for objects. [Raphaël Vinot]
- Fail if a duplicate object is added to an event. [Raphaël Vinot]
- Add in ability to create/update/delete MISP Event Reports. [Tom King]
- Add in ability to create/update/delete MISP Event Reports. [Tom King]
- Hard delete flag for objects. [Raphaël Vinot]
Changes
~~~~~~~
- Bump changelog. [Raphaël Vinot]
- Bump version. [Raphaël Vinot]
- Add brotli support in the dependencies. [Raphaël Vinot]
- Make mypy happy. [Raphaël Vinot]
- Make clear that to_json returns str. [Raphaël Vinot]
- Disable correlation on malware-sample for FileObject. [Raphaël Vinot]
- Bump objects templates. [Raphaël Vinot]
- Add missing autodoc. [Raphaël Vinot]
fix #693
- Add in delete function for a MISP Object. [Tom King]
- Fix return of delete_event_report. [Raphaël Vinot]
- Remove critical warning if lief is not installed. [Raphaël Vinot]
Fix https://github.com/MISP/MISP/issues/6908
- Bump deps. [Raphaël Vinot]
- Allow response of delete to be pythonify, add in nosetest. [Tom King]
- Add ability to get event reports from the Event ID. [Tom King]
- Remove travis file, GH Actions is better. [Raphaël Vinot]
- Bump deps. [Raphaël Vinot]
- Remove critical warning if lief is not installed. [Raphaël Vinot]
Fix https://github.com/MISP/MISP/issues/6908
- Add test case fir add_attribute and enforceWarninglist=True. [Raphaël
Vinot]
- Add testcase with breakOnDuplicate in a MISPObject. [Raphaël Vinot]
- Bump changelog. [Raphaël Vinot]
- Bump version. [Raphaël Vinot]
- Add test case for page/limit in logs search. [Raphaël Vinot]
- Bump deps. [Raphaël Vinot]
- Improve docstring for get_event. [Raphaël Vinot]
fix #686
- Bump changelog. [Raphaël Vinot]
- Bump version. [Raphaël Vinot]
- Show size when the json is not loadable. [Raphaël Vinot]
- Add authenticode support in generate_file_objects. [Raphaël Vinot]
- Use lief 0.11.0, generate authenticode entries. [Raphaël Vinot]
- Bump objects. [Raphaël Vinot]
- Bump deps, add 3.9 in GH. [Raphaël Vinot]
- Bump deps. [Raphaël Vinot]
- Bump deps, objects templates. [Raphaël Vinot]
- Make clear that to_json returns str. [Raphaël Vinot]
- Disable correlation on malware-sample for FileObject. [Raphaël Vinot]
- Bump objects templates. [Raphaël Vinot]
- Bump deps. [Raphaël Vinot]
- Add missing autodoc. [Raphaël Vinot]
fix #693
- Add in delete function for a MISP Object. [Tom King]
- Bump deps. [Raphaël Vinot]
- Fix return of delete_event_report. [Raphaël Vinot]
- Remove travis file, GH Actions is better. [Raphaël Vinot]
- Bump deps. [Raphaël Vinot]
- Remove critical warning if lief is not installed. [Raphaël Vinot]
Fix https://github.com/MISP/MISP/issues/6908
- Add test case fir add_attribute and enforceWarninglist=True. [Raphaël
Vinot]
- Add testcase with breakOnDuplicate in a MISPObject. [Raphaël Vinot]
- Bump changelog. [Raphaël Vinot]
- Bump version. [Raphaël Vinot]
- Add test case for page/limit in logs search. [Raphaël Vinot]
- Bump deps. [Raphaël Vinot]
- Improve docstring for get_event. [Raphaël Vinot]
fix #686
- Bump changelog. [Raphaël Vinot]
- Bump version. [Raphaël Vinot]
- Show size when the json is not loadable. [Raphaël Vinot]
- Add authenticode support in generate_file_objects. [Raphaël Vinot]
- Use lief 0.11.0, generate authenticode entries. [Raphaël Vinot]
- Bump objects. [Raphaël Vinot]
- Bump deps, add 3.9 in GH. [Raphaël Vinot]
- Bump deps. [Raphaël Vinot]
- Bump deps, objects templates. [Raphaël Vinot]
- Allow response of delete to be pythonify, add in nosetest. [Tom King]
- Add ability to get event reports from the Event ID. [Tom King]
- Remove travis file, GH Actions is better. [Raphaël Vinot]
- Bump deps. [Raphaël Vinot]
- Remove critical warning if lief is not installed. [Raphaël Vinot]
Fix https://github.com/MISP/MISP/issues/6908
- Add test case fir add_attribute and enforceWarninglist=True. [Raphaël
Vinot]
- Add testcase with breakOnDuplicate in a MISPObject. [Raphaël Vinot]
Fix
~~~
- Flake error. [Raphaël Vinot]
- Update testlive accordingly. [Raphaël Vinot]
- Better warning if lief is outdated. [Raphaël Vinot]
- Call the AbstractMISP.from_dict at the end of the function to ensure
the edited flag remains false. [Tom King]
- Better warning if lief is outdated. [Raphaël Vinot]
- Update minimal dependency for lief in setup.py. [Raphaël Vinot]
- [dev mode only] force older jedi to avoid ipython exception. [Raphaël
Vinot]
- Add python 3.9 in GH Actions. [Raphaël Vinot]
- Update testlive accordingly. [Raphaël Vinot]
- Better warning if lief is outdated. [Raphaël Vinot]
- Update minimal dependency for lief in setup.py. [Raphaël Vinot]
- [dev mode only] force older jedi to avoid ipython exception. [Raphaël
Vinot]
- Add python 3.9 in GH Actions. [Raphaël Vinot]
- Call the AbstractMISP.from_dict at the end of the function to ensure
the edited flag remains false. [Tom King]
v2.4.137.1 (2021-01-21) v2.4.137.1 (2021-01-21)
----------------------- -----------------------
@ -11,6 +171,7 @@ New
Changes Changes
~~~~~~~ ~~~~~~~
- Bump changelog. [Raphaël Vinot]
- Bump version. [Raphaël Vinot] - Bump version. [Raphaël Vinot]
- Add test case for page/limit in logs search. [Raphaël Vinot] - Add test case for page/limit in logs search. [Raphaël Vinot]
- Bump deps. [Raphaël Vinot] - Bump deps. [Raphaël Vinot]

View File

@ -1,4 +1,4 @@
pymisp - Modules pymisp - Classes
================ ================
.. toctree:: .. toctree::
@ -33,6 +33,20 @@ MISPEvent
:members: :members:
:inherited-members: :inherited-members:
MISPEventBlocklist
------------------
.. autoclass:: MISPEventBlocklist
:members:
:inherited-members:
MISPEventDelegation
-------------------
.. autoclass:: MISPEventDelegation
:members:
:inherited-members:
MISPAttribute MISPAttribute
------------- -------------
@ -61,6 +75,13 @@ MISPObjectReference
:members: :members:
:inherited-members: :inherited-members:
MISPObjectTemplate
------------------
.. autoclass:: MISPObjectTemplate
:members:
:inherited-members:
MISPTag MISPTag
------- -------
@ -75,6 +96,12 @@ MISPUser
:members: :members:
:inherited-members: :inherited-members:
MISPUserSetting
---------------
.. autoclass:: MISPUserSetting
:members:
:inherited-members:
MISPOrganisation MISPOrganisation
---------------- ----------------
@ -83,3 +110,87 @@ MISPOrganisation
:members: :members:
:inherited-members: :inherited-members:
MISPOrganisationBlocklist
-------------------------
.. autoclass:: MISPOrganisationBlocklist
:members:
:inherited-members:
MISPFeed
--------
.. autoclass:: MISPFeed
:members:
:inherited-members:
MISPInbox
---------
.. autoclass:: MISPInbox
:members:
:inherited-members:
MISPLog
-------
.. autoclass:: MISPLog
:members:
:inherited-members:
MISPNoticelist
--------------
.. autoclass:: MISPNoticelist
:members:
:inherited-members:
MISPRole
--------
.. autoclass:: MISPRole
:members:
:inherited-members:
MISPServer
----------
.. autoclass:: MISPServer
:members:
:inherited-members:
MISPShadowAttribute
-------------------
.. autoclass:: MISPShadowAttribute
:members:
:inherited-members:
MISPSharingGroup
----------------
.. autoclass:: MISPSharingGroup
:members:
:inherited-members:
MISPSighting
------------
.. autoclass:: MISPSighting
:members:
:inherited-members:
MISPTaxonomy
------------
.. autoclass:: MISPTaxonomy
:members:
:inherited-members:
MISPWarninglist
---------------
.. autoclass:: MISPWarninglist
:members:
:inherited-members:

252
poetry.lock generated
View File

@ -89,7 +89,7 @@ lxml = ["lxml"]
[[package]] [[package]]
name = "bleach" name = "bleach"
version = "3.2.3" version = "3.3.0"
description = "An easy safelist-based HTML-sanitizing tool." description = "An easy safelist-based HTML-sanitizing tool."
category = "dev" category = "dev"
optional = false optional = false
@ -100,6 +100,17 @@ packaging = "*"
six = ">=1.9.0" six = ">=1.9.0"
webencodings = "*" webencodings = "*"
[[package]]
name = "brotlipy"
version = "0.7.0"
description = "Python binding to the Brotli library"
category = "main"
optional = true
python-versions = "*"
[package.dependencies]
cffi = ">=1.0.0"
[[package]] [[package]]
name = "certifi" name = "certifi"
version = "2020.12.5" version = "2020.12.5"
@ -152,7 +163,7 @@ name = "colorclass"
version = "2.2.0" version = "2.2.0"
description = "Colorful worry-free console applications for Linux, Mac OS X, and Windows." description = "Colorful worry-free console applications for Linux, Mac OS X, and Windows."
category = "main" category = "main"
optional = false optional = true
python-versions = "*" python-versions = "*"
[[package]] [[package]]
@ -171,7 +182,7 @@ name = "compressed-rtf"
version = "1.0.6" version = "1.0.6"
description = "Compressed Rich Text Format (RTF) compression and decompression package" description = "Compressed Rich Text Format (RTF) compression and decompression package"
category = "main" category = "main"
optional = false optional = true
python-versions = "*" python-versions = "*"
[[package]] [[package]]
@ -203,22 +214,22 @@ yaml = ["PyYAML (>=3.10)"]
[[package]] [[package]]
name = "cryptography" name = "cryptography"
version = "3.3.1" version = "3.4.1"
description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers."
category = "main" category = "main"
optional = false optional = true
python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*" python-versions = ">=3.6"
[package.dependencies] [package.dependencies]
cffi = ">=1.12" cffi = ">=1.12"
six = ">=1.4.1" setuptools-rust = ">=0.11.4"
[package.extras] [package.extras]
docs = ["sphinx (>=1.6.5,!=1.8.0,!=3.1.0,!=3.1.1)", "sphinx-rtd-theme"] docs = ["sphinx (>=1.6.5,!=1.8.0,!=3.1.0,!=3.1.1)", "sphinx-rtd-theme"]
docstest = ["doc8", "pyenchant (>=1.6.11)", "twine (>=1.12.0)", "sphinxcontrib-spelling (>=4.0.1)"] docstest = ["doc8", "pyenchant (>=1.6.11)", "twine (>=1.12.0)", "sphinxcontrib-spelling (>=4.0.1)"]
pep8test = ["black", "flake8", "flake8-import-order", "pep8-naming"] pep8test = ["black", "flake8", "flake8-import-order", "pep8-naming"]
ssh = ["bcrypt (>=3.1.5)"] ssh = ["bcrypt (>=3.1.5)"]
test = ["pytest (>=3.6.0,!=3.9.0,!=3.9.1,!=3.9.2)", "pretend", "iso8601", "pytz", "hypothesis (>=1.11.4,!=3.79.2)"] test = ["pytest (>=6.0)", "pytest-cov", "pytest-subtests", "pytest-xdist", "pretend", "iso8601", "pytz", "hypothesis (>=1.11.4,!=3.79.2)"]
[[package]] [[package]]
name = "decorator" name = "decorator"
@ -271,7 +282,7 @@ name = "easygui"
version = "0.98.2" version = "0.98.2"
description = "EasyGUI is a module for very simple, very easy GUI programming in Python. EasyGUI is different from other GUI generators in that EasyGUI is NOT event-driven. Instead, all GUI interactions are invoked by simple function calls." description = "EasyGUI is a module for very simple, very easy GUI programming in Python. EasyGUI is different from other GUI generators in that EasyGUI is NOT event-driven. Instead, all GUI interactions are invoked by simple function calls."
category = "main" category = "main"
optional = false optional = true
python-versions = "*" python-versions = "*"
[[package]] [[package]]
@ -279,7 +290,7 @@ name = "ebcdic"
version = "1.1.1" version = "1.1.1"
description = "Additional EBCDIC codecs" description = "Additional EBCDIC codecs"
category = "main" category = "main"
optional = false optional = true
python-versions = "*" python-versions = "*"
[[package]] [[package]]
@ -295,7 +306,7 @@ name = "extract-msg"
version = "0.28.1" version = "0.28.1"
description = "Extracts emails and attachments saved in Microsoft Outlook's .msg files" description = "Extracts emails and attachments saved in Microsoft Outlook's .msg files"
category = "main" category = "main"
optional = false optional = true
python-versions = "*" python-versions = "*"
[package.dependencies] [package.dependencies]
@ -340,7 +351,7 @@ name = "imapclient"
version = "2.1.0" version = "2.1.0"
description = "Easy-to-use, Pythonic and complete IMAP client library" description = "Easy-to-use, Pythonic and complete IMAP client library"
category = "main" category = "main"
optional = false optional = true
python-versions = "*" python-versions = "*"
[package.dependencies] [package.dependencies]
@ -440,7 +451,7 @@ testing = ["Django (<3.1)", "colorama", "docopt", "pytest (>=3.9.0,<5.0.0)"]
[[package]] [[package]]
name = "jinja2" name = "jinja2"
version = "2.11.2" version = "2.11.3"
description = "A very fast and expressive template engine." description = "A very fast and expressive template engine."
category = "main" category = "main"
optional = false optional = false
@ -502,7 +513,7 @@ test = ["jedi (<=0.17.2)", "ipykernel", "ipython", "mock", "pytest", "pytest-asy
[[package]] [[package]]
name = "jupyter-core" name = "jupyter-core"
version = "4.7.0" version = "4.7.1"
description = "Jupyter core package. A base package on which Jupyter projects rely." description = "Jupyter core package. A base package on which Jupyter projects rely."
category = "dev" category = "dev"
optional = false optional = false
@ -564,7 +575,7 @@ name = "lark-parser"
version = "0.11.1" version = "0.11.1"
description = "a modern parsing library" description = "a modern parsing library"
category = "main" category = "main"
optional = false optional = true
python-versions = "*" python-versions = "*"
[package.extras] [package.extras]
@ -608,7 +619,7 @@ name = "msoffcrypto-tool"
version = "4.11.0" version = "4.11.0"
description = "A Python tool and library for decrypting MS Office files with passwords or other keys" description = "A Python tool and library for decrypting MS Office files with passwords or other keys"
category = "main" category = "main"
optional = false optional = true
python-versions = "*" python-versions = "*"
[package.dependencies] [package.dependencies]
@ -757,7 +768,7 @@ name = "olefile"
version = "0.46" version = "0.46"
description = "Python package to parse, read and write Microsoft OLE2 files (Structured Storage or Compound Document, Microsoft Office)" description = "Python package to parse, read and write Microsoft OLE2 files (Structured Storage or Compound Document, Microsoft Office)"
category = "main" category = "main"
optional = false optional = true
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
[[package]] [[package]]
@ -765,7 +776,7 @@ name = "oletools"
version = "0.56" version = "0.56"
description = "Python tools to analyze security characteristics of MS Office and OLE files (also called Structured Storage, Compound File Binary Format or Compound Document File Format), for Malware Analysis and Incident Response #DFIR" description = "Python tools to analyze security characteristics of MS Office and OLE files (also called Structured Storage, Compound File Binary Format or Compound Document File Format), for Malware Analysis and Incident Response #DFIR"
category = "main" category = "main"
optional = false optional = true
python-versions = "*" python-versions = "*"
[package.dependencies] [package.dependencies]
@ -778,7 +789,7 @@ pyparsing = ">=2.1.0,<3"
[[package]] [[package]]
name = "packaging" name = "packaging"
version = "20.8" version = "20.9"
description = "Core utilities for Python packages" description = "Core utilities for Python packages"
category = "main" category = "main"
optional = false optional = false
@ -811,7 +822,7 @@ name = "pcodedmp"
version = "1.2.6" version = "1.2.6"
description = "A VBA p-code disassembler" description = "A VBA p-code disassembler"
category = "main" category = "main"
optional = false optional = true
python-versions = "*" python-versions = "*"
[package.dependencies] [package.dependencies]
@ -968,10 +979,10 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
[[package]] [[package]]
name = "pytz" name = "pytz"
version = "2020.5" version = "2021.1"
description = "World timezone definitions, modern and historical" description = "World timezone definitions, modern and historical"
category = "main" category = "main"
optional = false optional = true
python-versions = "*" python-versions = "*"
[[package]] [[package]]
@ -992,7 +1003,7 @@ python-versions = "*"
[[package]] [[package]]
name = "pyzmq" name = "pyzmq"
version = "22.0.1" version = "22.0.2"
description = "Python bindings for 0MQ" description = "Python bindings for 0MQ"
category = "dev" category = "dev"
optional = false optional = false
@ -1065,7 +1076,7 @@ name = "rtfde"
version = "0.0.2" version = "0.0.2"
description = "A library for extracting HTML content from RTF encapsulated HTML as commonly found in the exchange MSG email format." description = "A library for extracting HTML content from RTF encapsulated HTML as commonly found in the exchange MSG email format."
category = "main" category = "main"
optional = false optional = true
python-versions = ">=3.6" python-versions = ">=3.6"
[package.dependencies] [package.dependencies]
@ -1076,6 +1087,14 @@ oletools = ">=0.56"
dev = ["lxml (>=4.6)"] dev = ["lxml (>=4.6)"]
msg_parse = ["extract-msg (>=0.27)"] msg_parse = ["extract-msg (>=0.27)"]
[[package]]
name = "semantic-version"
version = "2.8.5"
description = "A library implementing the 'SemVer' scheme."
category = "main"
optional = true
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
[[package]] [[package]]
name = "send2trash" name = "send2trash"
version = "1.5.0" version = "1.5.0"
@ -1084,6 +1103,18 @@ category = "dev"
optional = false optional = false
python-versions = "*" python-versions = "*"
[[package]]
name = "setuptools-rust"
version = "0.11.6"
description = "Setuptools rust extension plugin"
category = "main"
optional = true
python-versions = ">=3.5"
[package.dependencies]
semantic-version = ">=2.6.0"
toml = ">=0.9.0"
[[package]] [[package]]
name = "six" name = "six"
version = "1.15.0" version = "1.15.0"
@ -1249,6 +1280,14 @@ python-versions = "*"
[package.extras] [package.extras]
test = ["pathlib2"] test = ["pathlib2"]
[[package]]
name = "toml"
version = "0.10.2"
description = "Python Library for Tom's Obvious, Minimal Language"
category = "main"
optional = true
python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
[[package]] [[package]]
name = "tornado" name = "tornado"
version = "6.1" version = "6.1"
@ -1294,7 +1333,7 @@ name = "tzlocal"
version = "2.1" version = "2.1"
description = "tzinfo object for the local timezone" description = "tzinfo object for the local timezone"
category = "main" category = "main"
optional = false optional = true
python-versions = "*" python-versions = "*"
[package.dependencies] [package.dependencies]
@ -1308,6 +1347,9 @@ category = "main"
optional = false optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4" python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4"
[package.dependencies]
brotlipy = {version = ">=0.6.0", optional = true, markers = "extra == \"brotli\""}
[package.extras] [package.extras]
brotli = ["brotlipy (>=0.6.0)"] brotli = ["brotlipy (>=0.6.0)"]
secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"] secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"]
@ -1349,7 +1391,7 @@ name = "win-unicode-console"
version = "0.5" version = "0.5"
description = "Enable Unicode input and display when running Python from Windows console." description = "Enable Unicode input and display when running Python from Windows console."
category = "main" category = "main"
optional = false optional = true
python-versions = "*" python-versions = "*"
[[package]] [[package]]
@ -1373,6 +1415,7 @@ docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"]
testing = ["pytest (>=3.5,!=3.7.3)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-cov", "jaraco.test (>=3.2.0)", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy"] testing = ["pytest (>=3.5,!=3.7.3)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-cov", "jaraco.test (>=3.2.0)", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy"]
[extras] [extras]
brotli = ["urllib3"]
docs = ["sphinx-autodoc-typehints", "recommonmark"] docs = ["sphinx-autodoc-typehints", "recommonmark"]
email = ["extract_msg", "RTFDE", "oletools"] email = ["extract_msg", "RTFDE", "oletools"]
fileobjects = ["python-magic", "pydeep", "lief"] fileobjects = ["python-magic", "pydeep", "lief"]
@ -1384,7 +1427,7 @@ virustotal = ["validators"]
[metadata] [metadata]
lock-version = "1.1" lock-version = "1.1"
python-versions = "^3.6" python-versions = "^3.6"
content-hash = "0111246c147cf1b378686b6e839730cd8708babd1c1024509be97a5d29a1529e" content-hash = "9f7289c3410f9000dbf655580c0f32f8685b72e799f2d0030b029685b6e1db2a"
[metadata.files] [metadata.files]
alabaster = [ alabaster = [
@ -1435,8 +1478,47 @@ beautifulsoup4 = [
{file = "beautifulsoup4-4.9.3.tar.gz", hash = "sha256:84729e322ad1d5b4d25f805bfa05b902dd96450f43842c4e99067d5e1369eb25"}, {file = "beautifulsoup4-4.9.3.tar.gz", hash = "sha256:84729e322ad1d5b4d25f805bfa05b902dd96450f43842c4e99067d5e1369eb25"},
] ]
bleach = [ bleach = [
{file = "bleach-3.2.3-py2.py3-none-any.whl", hash = "sha256:2d3b3f7e7d69148bb683b26a3f21eabcf62fa8fb7bc75d0e7a13bcecd9568d4d"}, {file = "bleach-3.3.0-py2.py3-none-any.whl", hash = "sha256:6123ddc1052673e52bab52cdc955bcb57a015264a1c57d37bea2f6b817af0125"},
{file = "bleach-3.2.3.tar.gz", hash = "sha256:c6ad42174219b64848e2e2cd434e44f56cd24a93a9b4f8bc52cfed55a1cd5aad"}, {file = "bleach-3.3.0.tar.gz", hash = "sha256:98b3170739e5e83dd9dc19633f074727ad848cbedb6026708c8ac2d3b697a433"},
]
brotlipy = [
{file = "brotlipy-0.7.0-cp27-cp27m-macosx_10_6_intel.whl", hash = "sha256:af65d2699cb9f13b26ec3ba09e75e80d31ff422c03675fcb36ee4dabe588fdc2"},
{file = "brotlipy-0.7.0-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:50ca336374131cfad20612f26cc43c637ac0bfd2be3361495e99270883b52962"},
{file = "brotlipy-0.7.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:fd1d1c64214af5d90014d82cee5d8141b13d44c92ada7a0c0ec0679c6f15a471"},
{file = "brotlipy-0.7.0-cp27-cp27m-win32.whl", hash = "sha256:5de6f7d010b7558f72f4b061a07395c5c3fd57f0285c5af7f126a677b976a868"},
{file = "brotlipy-0.7.0-cp27-cp27m-win_amd64.whl", hash = "sha256:637847560d671657f993313ecc6c6c6666a936b7a925779fd044065c7bc035b9"},
{file = "brotlipy-0.7.0-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:b4c98b0d2c9c7020a524ca5bbff42027db1004c6571f8bc7b747f2b843128e7a"},
{file = "brotlipy-0.7.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:8b39abc3256c978f575df5cd7893153277216474f303e26f0e43ba3d3969ef96"},
{file = "brotlipy-0.7.0-cp33-cp33m-macosx_10_6_intel.whl", hash = "sha256:96bc59ff9b5b5552843dc67999486a220e07a0522dddd3935da05dc194fa485c"},
{file = "brotlipy-0.7.0-cp33-cp33m-manylinux1_i686.whl", hash = "sha256:091b299bf36dd6ef7a06570dbc98c0f80a504a56c5b797f31934d2ad01ae7d17"},
{file = "brotlipy-0.7.0-cp33-cp33m-manylinux1_x86_64.whl", hash = "sha256:0be698678a114addcf87a4b9496c552c68a2c99bf93cf8e08f5738b392e82057"},
{file = "brotlipy-0.7.0-cp33-cp33m-win32.whl", hash = "sha256:d2c1c724c4ac375feb2110f1af98ecdc0e5a8ea79d068efb5891f621a5b235cb"},
{file = "brotlipy-0.7.0-cp33-cp33m-win_amd64.whl", hash = "sha256:3a3e56ced8b15fbbd363380344f70f3b438e0fd1fcf27b7526b6172ea950e867"},
{file = "brotlipy-0.7.0-cp34-cp34m-macosx_10_6_intel.whl", hash = "sha256:653faef61241bf8bf99d73ca7ec4baa63401ba7b2a2aa88958394869379d67c7"},
{file = "brotlipy-0.7.0-cp34-cp34m-manylinux1_i686.whl", hash = "sha256:0fa6088a9a87645d43d7e21e32b4a6bf8f7c3939015a50158c10972aa7f425b7"},
{file = "brotlipy-0.7.0-cp34-cp34m-manylinux1_x86_64.whl", hash = "sha256:79aaf217072840f3e9a3b641cccc51f7fc23037496bd71e26211856b93f4b4cb"},
{file = "brotlipy-0.7.0-cp34-cp34m-win32.whl", hash = "sha256:a07647886e24e2fb2d68ca8bf3ada398eb56fd8eac46c733d4d95c64d17f743b"},
{file = "brotlipy-0.7.0-cp34-cp34m-win_amd64.whl", hash = "sha256:c6cc0036b1304dd0073eec416cb2f6b9e37ac8296afd9e481cac3b1f07f9db25"},
{file = "brotlipy-0.7.0-cp35-cp35m-macosx_10_6_intel.whl", hash = "sha256:07194f4768eb62a4f4ea76b6d0df6ade185e24ebd85877c351daa0a069f1111a"},
{file = "brotlipy-0.7.0-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:7e31f7adcc5851ca06134705fcf3478210da45d35ad75ec181e1ce9ce345bb38"},
{file = "brotlipy-0.7.0-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:9448227b0df082e574c45c983fa5cd4bda7bfb11ea6b59def0940c1647be0c3c"},
{file = "brotlipy-0.7.0-cp35-cp35m-win32.whl", hash = "sha256:dc6c5ee0df9732a44d08edab32f8a616b769cc5a4155a12d2d010d248eb3fb07"},
{file = "brotlipy-0.7.0-cp35-cp35m-win_amd64.whl", hash = "sha256:3c1d5e2cf945a46975bdb11a19257fa057b67591eb232f393d260e7246d9e571"},
{file = "brotlipy-0.7.0-cp36-cp36m-macosx_10_6_intel.whl", hash = "sha256:2a80319ae13ea8dd60ecdc4f5ccf6da3ae64787765923256b62c598c5bba4121"},
{file = "brotlipy-0.7.0-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:2699945a0a992c04fc7dc7fa2f1d0575a2c8b4b769f2874a08e8eae46bef36ae"},
{file = "brotlipy-0.7.0-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:1ea4e578241504b58f2456a6c69952c88866c794648bdc74baee74839da61d44"},
{file = "brotlipy-0.7.0-cp36-cp36m-win32.whl", hash = "sha256:2e5c64522364a9ebcdf47c5744a5ddeb3f934742d31e61ebfbbc095460b47162"},
{file = "brotlipy-0.7.0-cp36-cp36m-win_amd64.whl", hash = "sha256:09ec3e125d16749b31c74f021aba809541b3564e5359f8c265cbae442810b41a"},
{file = "brotlipy-0.7.0-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:4e4638b49835d567d447a2cfacec109f9a777f219f071312268b351b6839436d"},
{file = "brotlipy-0.7.0-cp37-cp37m-win_amd64.whl", hash = "sha256:1379347337dc3d20b2d61456d44ccce13e0625db2611c368023b4194d5e2477f"},
{file = "brotlipy-0.7.0-cp38-cp38-manylinux1_i686.whl", hash = "sha256:22a53ccebcce2425e19f99682c12be510bf27bd75c9b77a1720db63047a77554"},
{file = "brotlipy-0.7.0-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:4bac11c1ffba9eaa2894ec958a44e7f17778b3303c2ee9f99c39fcc511c26668"},
{file = "brotlipy-0.7.0-cp39-cp39-manylinux1_i686.whl", hash = "sha256:08a16ebe2ffc52f645c076f96b138f185e74e5d59b4a65e84af17d5997d82890"},
{file = "brotlipy-0.7.0-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:7b21341eab7c939214e457e24b265594067a6ad268305289148ebaf2dacef325"},
{file = "brotlipy-0.7.0-pp226-pp226u-macosx_10_10_x86_64.whl", hash = "sha256:786afc8c9bd67de8d31f46e408a3386331e126829114e4db034f91eacb05396d"},
{file = "brotlipy-0.7.0-pp36-pypy36_pp73-manylinux1_x86_64.whl", hash = "sha256:890b973039ba26c3ad2e86e8908ab527ed64f9b1357f81a676604da8088e4bf9"},
{file = "brotlipy-0.7.0-pp37-pypy37_pp73-manylinux1_x86_64.whl", hash = "sha256:4864ac52c116ea3e3a844248a9c9fbebb8797891cbca55484ecb6eed3ebeba24"},
{file = "brotlipy-0.7.0.tar.gz", hash = "sha256:36def0b859beaf21910157b4c33eb3b06d8ce459c942102f16988cca6ea164df"},
] ]
certifi = [ certifi = [
{file = "certifi-2020.12.5-py2.py3-none-any.whl", hash = "sha256:719a74fb9e33b9bd44cc7f3a8d94bc35e4049deebe19ba7d8e108280cfd59830"}, {file = "certifi-2020.12.5-py2.py3-none-any.whl", hash = "sha256:719a74fb9e33b9bd44cc7f3a8d94bc35e4049deebe19ba7d8e108280cfd59830"},
@ -1556,20 +1638,13 @@ coveralls = [
{file = "coveralls-3.0.0.tar.gz", hash = "sha256:5399c0565ab822a70a477f7031f6c88a9dd196b3de2877b3facb43b51bd13434"}, {file = "coveralls-3.0.0.tar.gz", hash = "sha256:5399c0565ab822a70a477f7031f6c88a9dd196b3de2877b3facb43b51bd13434"},
] ]
cryptography = [ cryptography = [
{file = "cryptography-3.3.1-cp27-cp27m-macosx_10_10_x86_64.whl", hash = "sha256:c366df0401d1ec4e548bebe8f91d55ebcc0ec3137900d214dd7aac8427ef3030"}, {file = "cryptography-3.4.1-cp36-abi3-macosx_10_10_x86_64.whl", hash = "sha256:e63b8da1d77ff60a73d72db68cb72e8ffbe9f7319e5ffa23f6bfe2757d6871e3"},
{file = "cryptography-3.3.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:9f6b0492d111b43de5f70052e24c1f0951cb9e6022188ebcb1cc3a3d301469b0"}, {file = "cryptography-3.4.1-cp36-abi3-manylinux2010_x86_64.whl", hash = "sha256:4d8df1f5b6b172fe53a465d8fc32134a07ccd4dc677f19af85562bcbc7e97504"},
{file = "cryptography-3.3.1-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:a69bd3c68b98298f490e84519b954335154917eaab52cf582fa2c5c7efc6e812"}, {file = "cryptography-3.4.1-cp36-abi3-manylinux2014_aarch64.whl", hash = "sha256:cd1d14b6c52d9372a7f4682576fa7d9c9d256afa6cc50828b337dbb8a9596066"},
{file = "cryptography-3.3.1-cp27-cp27m-win32.whl", hash = "sha256:84ef7a0c10c24a7773163f917f1cb6b4444597efd505a8aed0a22e8c4780f27e"}, {file = "cryptography-3.4.1-cp36-abi3-manylinux2014_x86_64.whl", hash = "sha256:85c7d84beacf32bf629767f06c78af0350eb869e2830e4ebe05b239c695eca38"},
{file = "cryptography-3.3.1-cp27-cp27m-win_amd64.whl", hash = "sha256:594a1db4511bc4d960571536abe21b4e5c3003e8750ab8365fafce71c5d86901"}, {file = "cryptography-3.4.1-cp36-abi3-win32.whl", hash = "sha256:007edf78a0b96513b94c1c7cc515286aec72f787bdcd11892edcdec9e27e936d"},
{file = "cryptography-3.3.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:0003a52a123602e1acee177dc90dd201f9bb1e73f24a070db7d36c588e8f5c7d"}, {file = "cryptography-3.4.1-cp36-abi3-win_amd64.whl", hash = "sha256:423c12d04df7ed3323e74745cba91056a411bd8f57609a6a64562845ccc5541a"},
{file = "cryptography-3.3.1-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:83d9d2dfec70364a74f4e7c70ad04d3ca2e6a08b703606993407bf46b97868c5"}, {file = "cryptography-3.4.1.tar.gz", hash = "sha256:be70bdaa29bcacf70896dae3a6f3eef91daf51bfba8a49dbfb9c23bb2cc914ba"},
{file = "cryptography-3.3.1-cp36-abi3-macosx_10_10_x86_64.whl", hash = "sha256:dc42f645f8f3a489c3dd416730a514e7a91a59510ddaadc09d04224c098d3302"},
{file = "cryptography-3.3.1-cp36-abi3-manylinux1_x86_64.whl", hash = "sha256:788a3c9942df5e4371c199d10383f44a105d67d401fb4304178020142f020244"},
{file = "cryptography-3.3.1-cp36-abi3-manylinux2010_x86_64.whl", hash = "sha256:69e836c9e5ff4373ce6d3ab311c1a2eed274793083858d3cd4c7d12ce20d5f9c"},
{file = "cryptography-3.3.1-cp36-abi3-manylinux2014_aarch64.whl", hash = "sha256:9e21301f7a1e7c03dbea73e8602905a4ebba641547a462b26dd03451e5769e7c"},
{file = "cryptography-3.3.1-cp36-abi3-win32.whl", hash = "sha256:b4890d5fb9b7a23e3bf8abf5a8a7da8e228f1e97dc96b30b95685df840b6914a"},
{file = "cryptography-3.3.1-cp36-abi3-win_amd64.whl", hash = "sha256:0e85aaae861d0485eb5a79d33226dd6248d2a9f133b81532c8f5aae37de10ff7"},
{file = "cryptography-3.3.1.tar.gz", hash = "sha256:7e177e4bea2de937a584b13645cab32f25e3d96fc0bc4a4cf99c27dc77682be6"},
] ]
decorator = [ decorator = [
{file = "decorator-4.4.2-py2.py3-none-any.whl", hash = "sha256:41fa54c2a0cc4ba648be4fd43cff00aedf5b9465c9bf18d64325bc225f08f760"}, {file = "decorator-4.4.2-py2.py3-none-any.whl", hash = "sha256:41fa54c2a0cc4ba648be4fd43cff00aedf5b9465c9bf18d64325bc225f08f760"},
@ -1642,8 +1717,8 @@ jedi = [
{file = "jedi-0.17.2.tar.gz", hash = "sha256:86ed7d9b750603e4ba582ea8edc678657fb4007894a12bcf6f4bb97892f31d20"}, {file = "jedi-0.17.2.tar.gz", hash = "sha256:86ed7d9b750603e4ba582ea8edc678657fb4007894a12bcf6f4bb97892f31d20"},
] ]
jinja2 = [ jinja2 = [
{file = "Jinja2-2.11.2-py2.py3-none-any.whl", hash = "sha256:f0a4641d3cf955324a89c04f3d94663aa4d638abe8f733ecd3582848e1c37035"}, {file = "Jinja2-2.11.3-py2.py3-none-any.whl", hash = "sha256:03e47ad063331dd6a3f04a43eddca8a966a26ba0c5b7207a9a9e4e08f1b29419"},
{file = "Jinja2-2.11.2.tar.gz", hash = "sha256:89aab215427ef59c34ad58735269eb58b1a5808103067f7bb9d5836c651b3bb0"}, {file = "Jinja2-2.11.3.tar.gz", hash = "sha256:a6d58433de0ae800347cab1fa3043cebbabe8baa9d29e668f1c768cb87a333c6"},
] ]
json5 = [ json5 = [
{file = "json5-0.9.5-py2.py3-none-any.whl", hash = "sha256:af1a1b9a2850c7f62c23fde18be4749b3599fd302f494eebf957e2ada6b9e42c"}, {file = "json5-0.9.5-py2.py3-none-any.whl", hash = "sha256:af1a1b9a2850c7f62c23fde18be4749b3599fd302f494eebf957e2ada6b9e42c"},
@ -1658,8 +1733,8 @@ jupyter-client = [
{file = "jupyter_client-6.1.11.tar.gz", hash = "sha256:649ca3aca1e28f27d73ef15868a7c7f10d6e70f761514582accec3ca6bb13085"}, {file = "jupyter_client-6.1.11.tar.gz", hash = "sha256:649ca3aca1e28f27d73ef15868a7c7f10d6e70f761514582accec3ca6bb13085"},
] ]
jupyter-core = [ jupyter-core = [
{file = "jupyter_core-4.7.0-py3-none-any.whl", hash = "sha256:0a451c9b295e4db772bdd8d06f2f1eb31caeec0e81fbb77ba37d4a3024e3b315"}, {file = "jupyter_core-4.7.1-py3-none-any.whl", hash = "sha256:8c6c0cac5c1b563622ad49321d5ec47017bd18b94facb381c6973a0486395f8e"},
{file = "jupyter_core-4.7.0.tar.gz", hash = "sha256:aa1f9496ab3abe72da4efe0daab0cb2233997914581f9a071e07498c6add8ed3"}, {file = "jupyter_core-4.7.1.tar.gz", hash = "sha256:79025cb3225efcd36847d0840f3fc672c0abd7afd0de83ba8a1d3837619122b4"},
] ]
jupyterlab = [ jupyterlab = [
{file = "jupyterlab-2.2.9-py3-none-any.whl", hash = "sha256:59af02c26a15ec2d2862a15bc72e41ae304b406a0b0d3f4f705eeb7caf91902b"}, {file = "jupyterlab-2.2.9-py3-none-any.whl", hash = "sha256:59af02c26a15ec2d2862a15bc72e41ae304b406a0b0d3f4f705eeb7caf91902b"},
@ -1791,8 +1866,8 @@ oletools = [
{file = "oletools-0.56.zip", hash = "sha256:8481cd60352399e15e9290ac57862a65952e9c83e3526ba833991a5c78f5cca1"}, {file = "oletools-0.56.zip", hash = "sha256:8481cd60352399e15e9290ac57862a65952e9c83e3526ba833991a5c78f5cca1"},
] ]
packaging = [ packaging = [
{file = "packaging-20.8-py2.py3-none-any.whl", hash = "sha256:24e0da08660a87484d1602c30bb4902d74816b6985b93de36926f5bc95741858"}, {file = "packaging-20.9-py2.py3-none-any.whl", hash = "sha256:67714da7f7bc052e064859c05c595155bd1ee9f69f76557e21f051443c20947a"},
{file = "packaging-20.8.tar.gz", hash = "sha256:78598185a7008a470d64526a8059de9aaa449238f280fc9eb6b13ba6c4109093"}, {file = "packaging-20.9.tar.gz", hash = "sha256:5b327ac1320dc863dca72f4514ecc086f31186744b84a230374cc1fd776feae5"},
] ]
pandocfilters = [ pandocfilters = [
{file = "pandocfilters-1.4.3.tar.gz", hash = "sha256:bc63fbb50534b4b1f8ebe1860889289e8af94a23bff7445259592df25a3906eb"}, {file = "pandocfilters-1.4.3.tar.gz", hash = "sha256:bc63fbb50534b4b1f8ebe1860889289e8af94a23bff7445259592df25a3906eb"},
@ -1898,8 +1973,8 @@ python-magic = [
{file = "python_magic-0.4.20-py2.py3-none-any.whl", hash = "sha256:33ce94d9395aa269a9c5fac10ae124a5fb328ebe248f36efc5a43922edee662e"}, {file = "python_magic-0.4.20-py2.py3-none-any.whl", hash = "sha256:33ce94d9395aa269a9c5fac10ae124a5fb328ebe248f36efc5a43922edee662e"},
] ]
pytz = [ pytz = [
{file = "pytz-2020.5-py2.py3-none-any.whl", hash = "sha256:16962c5fb8db4a8f63a26646d8886e9d769b6c511543557bc84e9569fb9a9cb4"}, {file = "pytz-2021.1-py2.py3-none-any.whl", hash = "sha256:eb10ce3e7736052ed3623d49975ce333bcd712c7bb19a58b9e2089d4057d0798"},
{file = "pytz-2020.5.tar.gz", hash = "sha256:180befebb1927b16f6b57101720075a984c019ac16b1b7575673bea42c6c3da5"}, {file = "pytz-2021.1.tar.gz", hash = "sha256:83a4a90894bf38e243cf052c8b58f381bfe9a7a483f6a9cab140bc7f702ac4da"},
] ]
pywin32 = [ pywin32 = [
{file = "pywin32-300-cp35-cp35m-win32.whl", hash = "sha256:1c204a81daed2089e55d11eefa4826c05e604d27fe2be40b6bf8db7b6a39da63"}, {file = "pywin32-300-cp35-cp35m-win32.whl", hash = "sha256:1c204a81daed2089e55d11eefa4826c05e604d27fe2be40b6bf8db7b6a39da63"},
@ -1926,37 +2001,38 @@ pywinpty = [
{file = "pywinpty-0.5.7.tar.gz", hash = "sha256:2d7e9c881638a72ffdca3f5417dd1563b60f603e1b43e5895674c2a1b01f95a0"}, {file = "pywinpty-0.5.7.tar.gz", hash = "sha256:2d7e9c881638a72ffdca3f5417dd1563b60f603e1b43e5895674c2a1b01f95a0"},
] ]
pyzmq = [ pyzmq = [
{file = "pyzmq-22.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:2cc0094d5539feea4c54ca5e9019e9aa967f621af2ddabe69db79ecb6a8d9549"}, {file = "pyzmq-22.0.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:c2a8d70fe2a321a83d274970481eb244bff027b58511e943ef564721530ba786"},
{file = "pyzmq-22.0.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:ab61e794d07cb5543254f7a2ef9a64ced98548314d7bedcf507281b88f57cae5"}, {file = "pyzmq-22.0.2-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:b68033181dc2e622bb5baa9b16d5933303779a03dc89860f4c44f629426d802c"},
{file = "pyzmq-22.0.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:1a797bca8b52ffeb78446ed46402ba1fe48d5dbdc9669aa24ab8b006b3eaedc1"}, {file = "pyzmq-22.0.2-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:9bae89912cac9f03d41adb66981f6e753cfd4e451937b2cd435d732fd4ccb1a3"},
{file = "pyzmq-22.0.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:1cebf51880eb8be28aa8c8f6d1e7d2120efbf6be5407fa3e47f0e97204f75adb"}, {file = "pyzmq-22.0.2-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:75b68890219231bd60556a1c6e0d2dc05fa1b179a26c876442c83a0d77958bc9"},
{file = "pyzmq-22.0.1-cp36-cp36m-win32.whl", hash = "sha256:69fd269dd8c78157e51a4b62d7ceeaac5250195b0ff2bf83a359943faa0a1b62"}, {file = "pyzmq-22.0.2-cp36-cp36m-win32.whl", hash = "sha256:c6b1d235a08f2c42480cb9a0a5cd2a29c391052d8bc8f43db86aa15387734a33"},
{file = "pyzmq-22.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:dad2dc96ebbafa9cc9aaa8f595bed4aa01abac4daaa0db1ae11e0b1e7ea539b8"}, {file = "pyzmq-22.0.2-cp36-cp36m-win_amd64.whl", hash = "sha256:f3ad3f77ed6a3cf31f61170fc1733afd83a4cf8e02edde0762d4e630bce2a97e"},
{file = "pyzmq-22.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3bd113b0f6c03b268583efaa91681400a65378cf16b829ce7d8113a7e601c3ff"}, {file = "pyzmq-22.0.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:490a9fe5509b09369722b18b85ef494abdf7c51cb1c9484cf83c3921961c2038"},
{file = "pyzmq-22.0.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:57a8cf39b464e3ac567477978819642e04811bc469db274629059374bac3285a"}, {file = "pyzmq-22.0.2-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:303b8ebafce9906fc1e8eb35734b9dba4786ca3da7cdc88e04a8997dde2372d3"},
{file = "pyzmq-22.0.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:d664447ac3fc862707fe33608343b3ceaeca6f90fb739bb67f9d708836dbff10"}, {file = "pyzmq-22.0.2-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:1ffb81b08bcaaac30ba913adef686ff41b257252e96fca32497029fdc3962ff0"},
{file = "pyzmq-22.0.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:35a586260ba2d0766d810f8d6b4e5325731a689f1848a5bee79aa10e213e76f4"}, {file = "pyzmq-22.0.2-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:75fa832c79ce30a23cd44a4e89224c651ef6bf5144b842ad066246e914b92233"},
{file = "pyzmq-22.0.1-cp37-cp37m-win32.whl", hash = "sha256:029b689a5010645e455688d83071e09cd2d75b113c44245ba0b054e409d018e2"}, {file = "pyzmq-22.0.2-cp37-cp37m-win32.whl", hash = "sha256:d77f6eb839097e4bce96fcac7e05e33b677efe0385bd0ab6c2a9ea818ed7e8f9"},
{file = "pyzmq-22.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:17104eda2151c8a3d0655ca8ece794d4df209a07d70a5ba90bf1cf27a5e30d51"}, {file = "pyzmq-22.0.2-cp37-cp37m-win_amd64.whl", hash = "sha256:5a565af3729b2bf7c2ce1d563084d0cd90a312290ba5e571a0c3ec770ea8a287"},
{file = "pyzmq-22.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:40e5003b3aefcc4de6898bf284de804dcf3f299019ac3632062aac3725b6a908"}, {file = "pyzmq-22.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ff236d8653f8bb74198223c7af77b9378714f411d6d95255d97c2d69bf991b20"},
{file = "pyzmq-22.0.1-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:9bf4d98ae6b5f962c2b790843204625fedd4ede79fd918c9f634d9ca8ab3d855"}, {file = "pyzmq-22.0.2-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:37beae88d6cf102419bb0ec79acb19c062dcea6765b57cf2b265dac5542bcdad"},
{file = "pyzmq-22.0.1-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:ada90fd5c69442ea3b4769e38c34d131b69db1fe3fce674c6113ced249a2e94a"}, {file = "pyzmq-22.0.2-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:bc9f2c26485dc76520084ee8d76f18171cc89f24f801bed8402302ee99dbbcd9"},
{file = "pyzmq-22.0.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:cc9ee1702adc37ffa6fdf77a9e9579b56ed52261031347257b6f42f30a9f4571"}, {file = "pyzmq-22.0.2-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:0b32bd5e7346e534fddb57eab309933ff6b3b177c0106b908b6193dfa75fdabe"},
{file = "pyzmq-22.0.1-cp38-cp38-win32.whl", hash = "sha256:be9f8fbccac03f5df850ad1c927e1568d0e85aeba0a793b1cabdc7c14315af09"}, {file = "pyzmq-22.0.2-cp38-cp38-win32.whl", hash = "sha256:58a074afa254a53872202e92594b59c0ba8cda62effc6437e34ae7048559dd38"},
{file = "pyzmq-22.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:b5ea1428cf96dca99fab4951ed86a94b868b9cfc8d7cd5be489dce32186ce710"}, {file = "pyzmq-22.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:66d1190eec0a78bd07d39d1615b7923190ed1ba8aa04742d963b09bc66628681"},
{file = "pyzmq-22.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:aff6f76d5b4b53d6949f72454b2f8f3280abf084ebaf8b811c4bd8499b159e6f"}, {file = "pyzmq-22.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:013e1343b41aaeb482f40605f3fadcfeb841706039625d7b30d12ae8fa0d3cd0"},
{file = "pyzmq-22.0.1-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:ece537e3a7417e907e57ac0a2392b142151931a9e7a1a5468f40911832486e56"}, {file = "pyzmq-22.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d66724bf0d423aa18c9ea43a1bf24ed5c1d143f00bdace7c1b7fc3034f188cc9"},
{file = "pyzmq-22.0.1-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:28506f107903f95e0ff5029d1271e6015caa04caf53d14be4e83476995b28938"}, {file = "pyzmq-22.0.2-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:86cb0982b02b4fc2fbd4a65155289e0e4e5015982dbe2db14f8856c303cffa08"},
{file = "pyzmq-22.0.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:7d46088b9b2ef3d14fa2c7f5e84a0fc119ba4685adb68d006a78ccc7a562070e"}, {file = "pyzmq-22.0.2-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:7b6c855c562d1c1bf7a1ba72c2617c8298e0fa1b1c08dc8d60e225031567ad9e"},
{file = "pyzmq-22.0.1-cp39-cp39-win32.whl", hash = "sha256:53fd35f3ebcc17d292e318b1b9471417d07f7b1e87de3efeebc611c97b4840b6"}, {file = "pyzmq-22.0.2-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:034f5b9e4ff0bcc67e49fe8f55a1b209ea5761c8fd00c246195c8d0cb6ce096d"},
{file = "pyzmq-22.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:02b865dd877215df5ada1ecfc72b9380cd789d63498103ebf28e7e397f1c65fa"}, {file = "pyzmq-22.0.2-cp39-cp39-win32.whl", hash = "sha256:849444c1699c244d5770d3a684c51f024e95c538f71dd3d1ff423a91745bab7f"},
{file = "pyzmq-22.0.1-pp36-pypy36_pp73-macosx_10_9_x86_64.whl", hash = "sha256:43f30f6c7ac301573c94943f87caede6a54ca928eaabd3936f6b50fd61b02c17"}, {file = "pyzmq-22.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:506d4716ca6e5798345038e75adcb05b4118112a36700941967925285637198b"},
{file = "pyzmq-22.0.1-pp36-pypy36_pp73-manylinux2010_x86_64.whl", hash = "sha256:149decda1a9bdb5bdac17bbba3bd78e93d0fe85e8155cf3ea18ebeceb733615f"}, {file = "pyzmq-22.0.2-pp36-pypy36_pp73-macosx_10_9_x86_64.whl", hash = "sha256:888d850d4b7e1426d210e901bd93075991b36fe0e2ae2547ce5c18b96df95250"},
{file = "pyzmq-22.0.1-pp36-pypy36_pp73-win32.whl", hash = "sha256:dd85a8f1620ac267548d96d55c1de3b431afd8d1eeb9827dfe423bf238804e13"}, {file = "pyzmq-22.0.2-pp36-pypy36_pp73-manylinux2010_x86_64.whl", hash = "sha256:03c001be8c3817d5721137660ed21d90f6175002f0e583306079c791b1d9a855"},
{file = "pyzmq-22.0.1-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:c17ba678f4dc187d142f512cf77d9e6c6263f83a5ae622315673c474fd72b9c7"}, {file = "pyzmq-22.0.2-pp36-pypy36_pp73-win32.whl", hash = "sha256:3f4e6574d2589e3e22514a3669e86a7bf18a95d3c3ae65733fa6a0a769ec4c9d"},
{file = "pyzmq-22.0.1-pp37-pypy37_pp73-manylinux2010_x86_64.whl", hash = "sha256:ef61a3f7b82b13a70737a28e11da4f54219ffa31bb3073e9c33c75a65c4046ab"}, {file = "pyzmq-22.0.2-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:35c8c5c8160f0f0fc6d4588037243b668c3f20d981c1b8e7b5d9c33f8eeb7eb6"},
{file = "pyzmq-22.0.1-pp37-pypy37_pp73-win32.whl", hash = "sha256:cee43acbd582f7b34fbe6b2713a2c1be78416c3cba738128ecfdab2b21e4cc39"}, {file = "pyzmq-22.0.2-pp37-pypy37_pp73-manylinux2010_x86_64.whl", hash = "sha256:841e9563ce9bd33fe9f227ec680ac033e9f1060977d613568c1dcbff09e74cc9"},
{file = "pyzmq-22.0.1.tar.gz", hash = "sha256:f7869dcb80a71ef83f1e1551f0d1ba4831a5c79416a441cb95ac82c9a954ee54"}, {file = "pyzmq-22.0.2-pp37-pypy37_pp73-win32.whl", hash = "sha256:cc814880ba27f2ea8cea48ff3b480076266d4dd9c3fe29ef6e5a0a807639abe7"},
{file = "pyzmq-22.0.2.tar.gz", hash = "sha256:d7b82a959e5e22d492f4f5a1e650e909a6c8c76ede178f538313ddb9d1e92963"},
] ]
recommonmark = [ recommonmark = [
{file = "recommonmark-0.7.1-py2.py3-none-any.whl", hash = "sha256:1b1db69af0231efce3fa21b94ff627ea33dee7079a01dd0a7f8482c3da148b3f"}, {file = "recommonmark-0.7.1-py2.py3-none-any.whl", hash = "sha256:1b1db69af0231efce3fa21b94ff627ea33dee7079a01dd0a7f8482c3da148b3f"},
@ -2016,10 +2092,18 @@ rtfde = [
{file = "RTFDE-0.0.2-py3-none-any.whl", hash = "sha256:18386e4f060cee12a2a8035b0acf0cc99689f5dff1bf347bab7e92351860a21d"}, {file = "RTFDE-0.0.2-py3-none-any.whl", hash = "sha256:18386e4f060cee12a2a8035b0acf0cc99689f5dff1bf347bab7e92351860a21d"},
{file = "RTFDE-0.0.2.tar.gz", hash = "sha256:b86b5d734950fe8745a5b89133f50554252dbd67c6d1b9265e23ee140e7ea8a2"}, {file = "RTFDE-0.0.2.tar.gz", hash = "sha256:b86b5d734950fe8745a5b89133f50554252dbd67c6d1b9265e23ee140e7ea8a2"},
] ]
semantic-version = [
{file = "semantic_version-2.8.5-py2.py3-none-any.whl", hash = "sha256:45e4b32ee9d6d70ba5f440ec8cc5221074c7f4b0e8918bdab748cc37912440a9"},
{file = "semantic_version-2.8.5.tar.gz", hash = "sha256:d2cb2de0558762934679b9a104e82eca7af448c9f4974d1f3eeccff651df8a54"},
]
send2trash = [ send2trash = [
{file = "Send2Trash-1.5.0-py3-none-any.whl", hash = "sha256:f1691922577b6fa12821234aeb57599d887c4900b9ca537948d2dac34aea888b"}, {file = "Send2Trash-1.5.0-py3-none-any.whl", hash = "sha256:f1691922577b6fa12821234aeb57599d887c4900b9ca537948d2dac34aea888b"},
{file = "Send2Trash-1.5.0.tar.gz", hash = "sha256:60001cc07d707fe247c94f74ca6ac0d3255aabcb930529690897ca2a39db28b2"}, {file = "Send2Trash-1.5.0.tar.gz", hash = "sha256:60001cc07d707fe247c94f74ca6ac0d3255aabcb930529690897ca2a39db28b2"},
] ]
setuptools-rust = [
{file = "setuptools-rust-0.11.6.tar.gz", hash = "sha256:a5b5954909cbc5d66b914ee6763f81fa2610916041c7266105a469f504a7c4ca"},
{file = "setuptools_rust-0.11.6-py3-none-any.whl", hash = "sha256:5acf8cd8e89d57f0cd3cc942f60fa2ccfdede4c7a0b0d4b28eb7ab756df30347"},
]
six = [ six = [
{file = "six-1.15.0-py2.py3-none-any.whl", hash = "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"}, {file = "six-1.15.0-py2.py3-none-any.whl", hash = "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"},
{file = "six-1.15.0.tar.gz", hash = "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"}, {file = "six-1.15.0.tar.gz", hash = "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"},
@ -2072,6 +2156,10 @@ testpath = [
{file = "testpath-0.4.4-py2.py3-none-any.whl", hash = "sha256:bfcf9411ef4bf3db7579063e0546938b1edda3d69f4e1fb8756991f5951f85d4"}, {file = "testpath-0.4.4-py2.py3-none-any.whl", hash = "sha256:bfcf9411ef4bf3db7579063e0546938b1edda3d69f4e1fb8756991f5951f85d4"},
{file = "testpath-0.4.4.tar.gz", hash = "sha256:60e0a3261c149755f4399a1fff7d37523179a70fdc3abdf78de9fc2604aeec7e"}, {file = "testpath-0.4.4.tar.gz", hash = "sha256:60e0a3261c149755f4399a1fff7d37523179a70fdc3abdf78de9fc2604aeec7e"},
] ]
toml = [
{file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"},
{file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"},
]
tornado = [ tornado = [
{file = "tornado-6.1-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:d371e811d6b156d82aa5f9a4e08b58debf97c302a35714f6f45e35139c332e32"}, {file = "tornado-6.1-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:d371e811d6b156d82aa5f9a4e08b58debf97c302a35714f6f45e35139c332e32"},
{file = "tornado-6.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:0d321a39c36e5f2c4ff12b4ed58d41390460f798422c4504e09eb5678e09998c"}, {file = "tornado-6.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:0d321a39c36e5f2c4ff12b4ed58d41390460f798422c4504e09eb5678e09998c"},

View File

@ -1,4 +1,4 @@
__version__ = '2.4.137.1' __version__ = '2.4.138'
import logging import logging
FORMAT = "%(levelname)s [%(filename)s:%(lineno)s - %(funcName)s() ] %(message)s" FORMAT = "%(levelname)s [%(filename)s:%(lineno)s - %(funcName)s() ] %(message)s"

View File

@ -237,7 +237,7 @@ class AbstractMISP(MutableMapping, MISPFileCache, metaclass=ABCMeta):
to_return = _int_to_str(to_return) to_return = _int_to_str(to_return)
return to_return return to_return
def to_json(self, sort_keys: bool = False, indent: Optional[int] = None): def to_json(self, sort_keys: bool = False, indent: Optional[int] = None) -> str:
"""Dump recursively any class of type MISPAbstract to a json string""" """Dump recursively any class of type MISPAbstract to a json string"""
return dumps(self, default=pymisp_json_default, sort_keys=sort_keys, indent=indent) return dumps(self, default=pymisp_json_default, sort_keys=sort_keys, indent=indent)

View File

@ -15,6 +15,7 @@ from uuid import UUID
import warnings import warnings
import sys import sys
import copy import copy
import urllib3 # type: ignore
from io import BytesIO, StringIO from io import BytesIO, StringIO
from . import __version__, everything_broken from . import __version__, everything_broken
@ -88,6 +89,27 @@ def register_user(misp_url: str, email: str,
return r.json() return r.json()
def brotli_supported() -> bool:
"""
Returns whether Brotli compression is supported
"""
# urllib >= 1.25.1 includes brotli support
major, minor, patch = urllib3.__version__.split('.') # noqa: F811
major, minor, patch = int(major), int(minor), int(patch)
urllib3_with_brotli = (major == 1 and ((minor == 25 and patch >= 1) or (minor >= 26))) or major >= 2
if not urllib3_with_brotli:
return False
# pybrotli is an extra package required by urllib3 for brotli support
try:
import brotli # type: ignore # noqa
return True
except ImportError:
return False
class PyMISP: class PyMISP:
"""Python API for MISP """Python API for MISP
@ -118,6 +140,8 @@ class PyMISP:
self.tool: str = tool self.tool: str = tool
self.timeout: Optional[Union[float, Tuple[float, float]]] = timeout self.timeout: Optional[Union[float, Tuple[float, float]]] = timeout
self.__session = requests.Session() # use one session to keep connection between requests self.__session = requests.Session() # use one session to keep connection between requests
if brotli_supported():
self.__session.headers['Accept-Encoding'] = ', '.join(('br', 'gzip', 'deflate'))
self.global_pythonify = False self.global_pythonify = False
@ -924,12 +948,12 @@ class PyMISP:
# ## BEGIN Tags ### # ## BEGIN Tags ###
def tags(self, pythonify: bool = False) -> Union[Dict, List[MISPTag]]: def tags(self, pythonify: bool = False, **kw_params) -> Union[Dict, List[MISPTag]]:
"""Get the list of existing tags. """Get the list of existing tags.
:param pythonify: Returns a list of PyMISP Objects instead of the plain json output. Warning: it might use a lot of RAM :param pythonify: Returns a list of PyMISP Objects instead of the plain json output. Warning: it might use a lot of RAM
""" """
r = self._prepare_request('GET', 'tags/index') r = self._prepare_request('GET', 'tags/index', kw_params=kw_params)
tags = self._check_json_response(r) tags = self._check_json_response(r)
if not (self.global_pythonify or pythonify) or 'errors' in tags: if not (self.global_pythonify or pythonify) or 'errors' in tags:
return tags['Tag'] return tags['Tag']

View File

@ -751,6 +751,10 @@ class MISPObject(AbstractMISP):
# Then we have no meta-category, template_uuid, description and template_version # Then we have no meta-category, template_uuid, description and template_version
pass pass
def delete(self):
"""Mark the attribute as deleted (soft delete)"""
self.deleted = True
@property @property
def disable_validation(self): def disable_validation(self):
self._strict = False self._strict = False

View File

@ -66,7 +66,7 @@ class FileObject(AbstractMISPObjectGenerator):
self.add_attribute('sha1', value=sha1(self.__data).hexdigest()) self.add_attribute('sha1', value=sha1(self.__data).hexdigest())
self.add_attribute('sha256', value=sha256(self.__data).hexdigest()) self.add_attribute('sha256', value=sha256(self.__data).hexdigest())
self.add_attribute('sha512', value=sha512(self.__data).hexdigest()) self.add_attribute('sha512', value=sha512(self.__data).hexdigest())
self.add_attribute('malware-sample', value=self.__filename, data=self.__pseudofile) self.add_attribute('malware-sample', value=self.__filename, data=self.__pseudofile, disable_correlation=True)
if HAS_MAGIC: if HAS_MAGIC:
self.add_attribute('mimetype', value=magic.from_buffer(self.__data, mime=True)) self.add_attribute('mimetype', value=magic.from_buffer(self.__data, mime=True))
if HAS_PYDEEP: if HAS_PYDEEP:

View File

@ -1,6 +1,6 @@
[tool.poetry] [tool.poetry]
name = "pymisp" name = "pymisp"
version = "2.4.137.1" version = "2.4.138"
description = "Python API for MISP." description = "Python API for MISP."
authors = ["Raphaël Vinot <raphael.vinot@circl.lu>"] authors = ["Raphaël Vinot <raphael.vinot@circl.lu>"]
license = "BSD-2-Clause" license = "BSD-2-Clause"
@ -46,9 +46,9 @@ requests = "^2.25.0"
python-dateutil = "^2.8.1" python-dateutil = "^2.8.1"
jsonschema = "^3.2.0" jsonschema = "^3.2.0"
deprecated = "^1.2.10" deprecated = "^1.2.10"
extract_msg = "^0.28.0" extract_msg = {version = "^0.28.0", optional = true}
RTFDE = "^0.0.2" RTFDE = {version = "^0.0.2", optional = true}
oletools = "^0.56" oletools = {version = "^0.56", optional = true}
python-magic = {version = "^0.4.18", optional = true} python-magic = {version = "^0.4.18", optional = true}
pydeep = {version = "^0.4", optional = true} pydeep = {version = "^0.4", optional = true}
lief = {version = "^0.11.0", optional = true} lief = {version = "^0.11.0", optional = true}
@ -58,6 +58,7 @@ sphinx-autodoc-typehints = {version = "^1.11.1", optional = true}
recommonmark = {version = "^0.7.1", optional = true} recommonmark = {version = "^0.7.1", optional = true}
reportlab = {version = "^3.5.55", optional = true} reportlab = {version = "^3.5.55", optional = true}
pyfaup = {version = "^1.2", optional = true} pyfaup = {version = "^1.2", optional = true}
urllib3 = {extras = ["brotli"], version = "^1.26.3", optional = true}
[tool.poetry.extras] [tool.poetry.extras]
@ -68,6 +69,7 @@ docs = ['sphinx-autodoc-typehints', 'recommonmark']
pdfexport = ['reportlab'] pdfexport = ['reportlab']
url = ['pyfaup'] url = ['pyfaup']
email = ['extract_msg', "RTFDE", "oletools"] email = ['extract_msg', "RTFDE", "oletools"]
brotli = ['urllib3']
[tool.poetry.dev-dependencies] [tool.poetry.dev-dependencies]
nose = "^1.3.7" nose = "^1.3.7"

View File

@ -50,7 +50,7 @@
"name": "url", "name": "url",
"sharing_group_id": "0", "sharing_group_id": "0",
"template_uuid": "60efb77b-40b5-4c46-871b-ed1ed999fce5", "template_uuid": "60efb77b-40b5-4c46-871b-ed1ed999fce5",
"template_version": "8", "template_version": "9",
"uuid": "b" "uuid": "b"
} }
] ]