{ "info": { "author": "Marcus LaFerrera", "author_email": "marcus@punchcyber.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: Information Technology", "Intended Audience :: System Administrators", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Security", "Topic :: Utilities" ], "description": "

\n
\n

\n\n[![Join the community on Spectrum](https://withspectrum.github.io/badge/badge.svg)](https://spectrum.chat/stoq)\n\n[![Build Status](https://travis-ci.org/PUNCH-Cyber/stoq.svg?branch=master)](https://travis-ci.org/PUNCH-Cyber/stoq)\n[![Coverage Status](https://coveralls.io/repos/github/PUNCH-Cyber/stoq/badge.svg?branch=master)](https://coveralls.io/github/PUNCH-Cyber/stoq?branch=master)\n[![Documentation Status](https://readthedocs.org/projects/stoq-framework/badge/?version=latest)](https://stoq-framework.readthedocs.io/en/latest/?badge=latest)\n[![Docker Build](https://img.shields.io/docker/build/punchcyber/stoq.svg)](https://hub.docker.com/r/punchcyber/stoq/)\n[![pypi](https://img.shields.io/pypi/v/stoq-framework.svg)](https://pypi.org/project/stoq-framework/)\n[![License](https://img.shields.io/pypi/l/stoq-framework.svg)](https://pypi.org/project/stoq-framework/)\n\n# Overview\n\nstoQ is a automation framework that helps to simplify the mundane and repetitive\ntasks an analyst is required to do. It enables analysts and DevSecOps teams to\nquickly transition between different data sources, databases, decoders/encoders,\nand numerous other tasks using enriched and consistent data structures. stoQ was\ndesigned to be enterprise ready and scalable, while also being lean enough for\nindividual security researchers.\n\n# Documentation\n\nIf you're interested in learning more about stoQ, to include how to develop your own plugins,\ncheckout the [full documentation](https://stoq-framework.readthedocs.io/).\n\n# Installation\n\nstoQ requires a minimum of python 3.6 and is recommended to be run in a [python venv](https://docs.python.org/3/library/venv.html).\n\nSetup a \\$STOQ_HOME (defaults to ~/.stoq) folder, the necessary plugin folder and a virtual environment:\n\n $ mkdir -p ~/.stoq/plugins\n $ python3 -m venv ~/.stoq/.venv\n $ source ~/.stoq/.venv/bin/activate\n\nInstallation via pip:\n\n $ pip3 install stoq-framework\n\nOr, you can install the lastest master:\n\n $ git clone https://github.com/PUNCH-Cyber/stoq\n $ cd stoq && python3 setup.py install\n\n# Plugins\n\nstoQ currently has a wide range of publicly available plugins. These plugins are available separately in the [plugin repository](https://github.com/PUNCH-Cyber/stoq-plugins-public) and can be [easily installed](https://stoq-framework.readthedocs.io/en/latest/installation.html#installing-plugins) from stoQ.\n\nDon't see a plugin you need? Check out the [plugin](https://stoq-framework.readthedocs.io/en/latest/dev/plugin_overview.html) documentation, or contact us.\n\n# What is stoQ\n\nstoQ was initially a collection of scripts that helped us solve problems we encountered\ndaily. These tasks, such as parsing an SMTP session, extracting attachments, scanning\nthem with a multitude of custom and open source tools, saving the results, and then\nfinally analyzing them took up an increasing amount of our team's resources. We spent\nan ever increasing amount of time simply attempting to collect and extract data. This\ntook valuable resources away from our ability to actually find and analyze adversaries\ntargeting our networks.\n\nWe grew tired of being the hamster in a wheel and decided to do something about it.\nIn 2011, we began development of a framework that would not only tackle the problem\nabove, but also allow us to quickly change the flow of data and automated analytics,\nquickly pivot to new databases to house the results, and simply be able to respond\nto the adversaries changing their tactics, techniques, and procedures (TTPs).\n\nMost importantly, our focus was to build a tool that would allow us to do what we\nlove to do -- defend networks from adversaries that are determined, focused, and relentless.\n\nIn 2015, after stoQ had been matured in multiple large scale operational networks, we\ndecided to open source our work in hopes of helping the wider Network Defense community.\nSince then, we've been constantly enhancing stoQ thanks to the feedback and contributions\nfrom the community of stoQ users.\n\n# Why use stoQ\n\nOver the years, there have been several other open source solutions that have been released\nthat have similar capabilities to stoQ. However, stoQ is fundamentally different in many ways\nwhen compared to other solutions available. Some key differences are:\n\n- Extremely lightweight and designed with simplicity in mind.\n- A wide range of [publicly available plugins](https://github.com/PUNCH-Cyber/stoq-plugins-public).\n- `stoQ` makes no assumptions about your workflow. Analysts decide everything, from where data\n originates, how it is scanned/decoded/processed, to where it is saved.\n- Scalable in not only native/bare metal environments, but also using solutions such as\n Kubernetes, AWS Lambda, Google Cloud Functions, Azure Functions, and many more.\n- Written to be easily and quickly extended. All you need is a plugin.\n- Can be used in an enterprise environment or by individuals without the need for client/server\n infrastructure\n- Overwhelming majority of code is covered by unit tests.\n- All core functions and plugins leverage typing and are type-checked at commit.\n- Actively developed since 2011, open source since 2015.\n- Extensive up-to-date documentation.\n\n# Philosophy\n\nOur goal with stoQ has always been to simplify the mundane and automate the repetitive, ultimately\nenabling network defenders to do what they do best -- focus on the threats. Since we began development,\nthis philosophy has not shifted. Our core philosophy for both design and development can be best\nsummarized by the [Zen of Python](https://www.python.org/dev/peps/pep-0020/):\n\n >>> import this\n The Zen of Python, by Tim Peters\n\n Beautiful is better than ugly.\n Explicit is better than implicit.\n Simple is better than complex.\n Readability counts.\n\n# Architecture\n\nOne of the most powerful features in stoQ is its flexibility. Because stoQ is a framework, the majority\nof the work actually happens within the plugins. stoQ itself is meant to orchestrate the communication\nbetween the various plugins and normalize their results. stoQ makes no assumptions on the architecture\nthat works best for the user. Because of this, stoQ allows for a highly configurable and flexible\narchitecture that can be defined by the user.\n\nFor example, analysts can run stoQ against an individual file on their local computer, or against 100's of\nmillions of payloads that are extracted off the wire -- and everything in between. Payloads can be dynamically\nrouted to plugins using yara, TRiD, and even static attributes. Results can be saved with\nElasticSearch one day, then in Splunk the next, or both at the same time. Directories can be monitored\nfor new files, queueing solutions such as RabbitMQ or Google PubSub can be leveraged, or mailboxes can even\nbe monitored for new e-mails. No matter what an analyst wants to do with stoQ, it's simply a matter of\nwriting a plugin.\n\nSee the below workflow for an overview of the plugin architecture:\n\n![workflow](docs/_static/workflow-72.png)\n\n# Example Output\n\nAs an example of output from stoQ, let's scan a local file with ExifTool and get\nthe hashes of the payload:\n\n {\n \"time\": \"...\",\n \"results\": [\n {\n \"payload_id\": \"00d2f069-d716-43ed-bc2f-b0bd295574d4\",\n \"size\": 507904,\n \"payload_meta\": {\n \"should_archive\": true,\n \"extra_data\": {\n \"filename\": \"bad.exe\"\n },\n \"dispatch_to\": []\n },\n \"workers\": [\n {\n \"hash\": {\n \"sha256\": \"47c6e9b102324ea6c54dd95ad3fdf4b48b18775053b105e241a371a3731488c0\",\n \"md5\": \"16d9f6e5491d99beb46d7ab1500c1799\",\n \"sha1\": \"9e6414bf2802c98fbd13172817db80380c5eeb6a\"\n },\n \"exif\": {\n \"SourceFile\": \"/tmp/tmp3r4juo8e\",\n \"ExifToolVersion\": 11.11,\n \"FileName\": \"tmp3r4juo8e\",\n \"Directory\": \"/tmp\",\n \"FileSize\": 507904,\n \"FileModifyDate\": \"...\",\n \"FileAccessDate\": \"...\",\n \"FileInodeChangeDate\": \".\",\n \"FilePermissions\": 600,\n \"FileType\": \"Win32 EXE\",\n \"FileTypeExtension\": \"EXE\",\n \"MIMEType\": \"application/octet-stream\",\n \"MachineType\": 332,\n \"TimeStamp\": \"2013:04:20 10:50:10-04:00\",\n \"ImageFileCharacteristics\": 258,\n \"PEType\": 267,\n \"LinkerVersion\": 9.0,\n \"CodeSize\": 386048,\n \"InitializedDataSize\": 120832,\n \"UninitializedDataSize\": 0,\n \"EntryPoint\": 208320,\n \"OSVersion\": 5.0,\n \"ImageVersion\": 0.0,\n \"SubsystemVersion\": 5.0,\n \"Subsystem\": 2\n }\n }\n ],\n \"archivers\": {},\n \"plugins_run\": {\n \"workers\": [\n [\n \"exif\",\n \"hash\"\n ]\n ],\n \"archivers\": []\n },\n \"extracted_from\": null,\n \"extracted_by\": null\n }\n ],\n \"request_meta\": {\n \"archive_payloads\": true,\n \"source\": null,\n \"extra_data\": {}\n },\n \"errors\": {},\n \"decorators\": {},\n \"scan_id\": \"4d053d5e-9f4e-417b-8f0e-deea0d45449d\"\n }\n\nOr, carve a few executable files out of a Microsoft Word document:\n\n {\n \"time\": \"...\",\n \"results\": [\n {\n \"payload_id\": \"e777051a-832b-489f-b74c-9949b2c9a2ce\",\n \"size\": 558592,\n \"payload_meta\": {\n \"should_archive\": true,\n \"extra_data\": {\n \"filename\": \"sample_doc_with_pe.doc\"\n },\n \"dispatch_to\": []\n },\n \"workers\": [\n {\n \"exif\": {\n \"SourceFile\": \"/tmp/tmpbqtisxjd\",\n \"ExifToolVersion\": 11.11,\n \"FileName\": \"tmpbqtisxjd\",\n \"Directory\": \"/tmp\",\n \"FileSize\": 558592,\n \"FileModifyDate\": \"...\",\n \"FileAccessDate\": \"...\",\n \"FileInodeChangeDate\": \"...\",\n \"FilePermissions\": 600,\n \"FileType\": \"DOC\",\n \"FileTypeExtension\": \"DOC\",\n \"MIMEType\": \"application/msword\",\n \"Identification\": 42476,\n \"LanguageCode\": 1033,\n \"DocFlags\": 4616,\n \"System\": 0,\n \"Word97\": 0,\n \"Author\": \"xxxxxxxxxxxx\",\n \"Template\": \"Normal\",\n \"LastModifiedBy\": \"xxxxxxxxxxxx\",\n \"Software\": \"Microsoft Office Word\",\n \"CreateDate\": \"2017:11:13 21:27:00\",\n \"ModifyDate\": \"2017:11:13 21:28:00\",\n \"Security\": 0,\n \"CodePage\": 1252,\n \"Company\": \"\",\n \"CharCountWithSpaces\": 20,\n \"AppVersion\": 14.0,\n \"ScaleCrop\": 0,\n \"LinksUpToDate\": 0,\n \"SharedDoc\": 0,\n \"HyperlinksChanged\": 0,\n \"TitleOfParts\": \"\",\n \"HeadingPairs\": [\n \"Titulo\",\n 1\n ],\n \"CompObjUserTypeLen\": 36,\n \"CompObjUserType\": \"Documento do Microsoft Word 97-2003\",\n \"LastPrinted\": \"0000:00:00 00:00:00\",\n \"RevisionNumber\": 2,\n \"TotalEditTime\": 1,\n \"Words\": 3,\n \"Characters\": 18,\n \"Pages\": 1,\n \"Paragraphs\": 1,\n \"Lines\": 1\n },\n \"hash\": {\n \"sha256\": \"4e3a682b2187f7c722b88af9bff5292fd7beb4d77233d1b3bc46f0bfc4891068\",\n \"md5\": \"137720063880f80270a61181b021d000\",\n \"sha1\": \"08bc0a52ee27ad0ceaa87bf394b1faa7a43bf27e\"\n }\n }\n ],\n \"archivers\": {},\n \"plugins_run\": {\n \"workers\": [\n [\n \"pecarve\",\n \"exif\",\n \"hash\"\n ]\n ],\n \"archivers\": []\n },\n \"extracted_from\": null,\n \"extracted_by\": null\n },\n {\n \"payload_id\": \"471b49f3-ea99-481f-a0a3-502826e69c73\",\n \"size\": 31232,\n \"payload_meta\": {\n \"should_archive\": true,\n \"extra_data\": {\n \"offset\": 11367\n },\n \"dispatch_to\": []\n },\n \"workers\": [\n {\n \"exif\": {\n \"SourceFile\": \"/tmp/tmpyi0yx_wf\",\n \"ExifToolVersion\": 11.11,\n \"FileName\": \"tmpyi0yx_wf\",\n \"Directory\": \"/tmp\",\n \"FileSize\": 31232,\n \"FileModifyDate\": \"...\",\n \"FileAccessDate\": \"...\",\n \"FileInodeChangeDate\": \"...\",\n \"FilePermissions\": 600,\n \"FileType\": \"Win32 EXE\",\n \"FileTypeExtension\": \"EXE\",\n \"MIMEType\": \"application/octet-stream\",\n \"MachineType\": 332,\n \"TimeStamp\": \"2016:07:15 21:44:45-04:00\",\n \"ImageFileCharacteristics\": 258,\n \"PEType\": 267,\n \"LinkerVersion\": 14.0,\n \"CodeSize\": 8192,\n \"InitializedDataSize\": 22528,\n \"UninitializedDataSize\": 0,\n \"EntryPoint\": 10496,\n \"OSVersion\": 10.0,\n \"ImageVersion\": 10.0,\n \"SubsystemVersion\": 10.0,\n \"Subsystem\": 2,\n \"FileVersionNumber\": \"10.0.14393.0\",\n \"ProductVersionNumber\": \"10.0.14393.0\",\n \"FileFlagsMask\": 63,\n \"FileFlags\": 0,\n \"FileOS\": 262148,\n \"ObjectFileType\": 1,\n \"FileSubtype\": 0,\n \"LanguageCode\": \"0409\",\n \"CharacterSet\": \"04B0\",\n \"CompanyName\": \"Microsoft Corporation\",\n \"FileDescription\": \"Windows Calculator\",\n \"FileVersion\": \"10.0.14393.0 (rs1_release.160715-1616)\",\n \"InternalName\": \"CALC\",\n \"LegalCopyright\": \"Microsoft Corporation. All rights reserved.\",\n \"OriginalFileName\": \"CALC.EXE\",\n \"ProductName\": \"Microsoft Windows Operating System\",\n \"ProductVersion\": \"10.0.14393.0\",\n \"Warning\": \"Possibly corrupt Version resource\"\n },\n \"hash\": {\n \"sha256\": \"c74f41325775de4777000161a057342cc57a04e8b7be17b06576412eff574dc5\",\n \"md5\": \"40e85286357723f326980a3b30f84e4f\",\n \"sha1\": \"2e391131f9b77a8ec0e0172113692f9e2ccceaf0\"\n }\n }\n ],\n \"archivers\": {},\n \"plugins_run\": {\n \"workers\": [\n [\n \"exif\",\n \"hash\"\n ]\n ],\n \"archivers\": []\n },\n \"extracted_from\": \"e777051a-832b-489f-b74c-9949b2c9a2ce\",\n \"extracted_by\": \"pecarve\"\n },\n {\n \"payload_id\": \"5a6279a4-df1d-4575-8587-286f5938839d\",\n \"size\": 507904,\n \"payload_meta\": {\n \"should_archive\": true,\n \"extra_data\": {\n \"offset\": 50688\n },\n \"dispatch_to\": []\n },\n \"workers\": [\n {\n \"exif\": {\n \"SourceFile\": \"/tmp/tmpsiaa54tm\",\n \"ExifToolVersion\": 11.11,\n \"FileName\": \"tmpsiaa54tm\",\n \"Directory\": \"/tmp\",\n \"FileSize\": 507904,\n \"FileModifyDate\": \"...\",\n \"FileAccessDate\": \"...\",\n \"FileInodeChangeDate\": \"...\",\n \"FilePermissions\": 600,\n \"FileType\": \"Win32 EXE\",\n \"FileTypeExtension\": \"EXE\",\n \"MIMEType\": \"application/octet-stream\",\n \"MachineType\": 332,\n \"TimeStamp\": \"2013:04:20 10:50:10-04:00\",\n \"ImageFileCharacteristics\": 258,\n \"PEType\": 267,\n \"LinkerVersion\": 9.0,\n \"CodeSize\": 386048,\n \"InitializedDataSize\": 120832,\n \"UninitializedDataSize\": 0,\n \"EntryPoint\": 208320,\n \"OSVersion\": 5.0,\n \"ImageVersion\": 0.0,\n \"SubsystemVersion\": 5.0,\n \"Subsystem\": 2\n },\n \"hash\": {\n \"sha256\": \"47c6e9b102324ea6c54dd95ad3fdf4b48b18775053b105e241a371a3731488c0\",\n \"md5\": \"16d9f6e5491d99beb46d7ab1500c1799\",\n \"sha1\": \"9e6414bf2802c98fbd13172817db80380c5eeb6a\"\n }\n }\n ],\n \"archivers\": {},\n \"plugins_run\": {\n \"workers\": [\n [\n \"exif\",\n \"hash\"\n ]\n ],\n \"archivers\": []\n },\n \"extracted_from\": \"e777051a-832b-489f-b74c-9949b2c9a2ce\",\n \"extracted_by\": \"pecarve\"\n }\n ],\n \"request_meta\": {\n \"archive_payloads\": true,\n \"source\": null,\n \"extra_data\": {}\n },\n \"errors\": {},\n \"decorators\": {},\n \"scan_id\": \"04f9aec3-afc7-4fa1-b179-73e46c074e81\"\n }", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/PUNCH-Cyber/stoq", "keywords": "malware-analysis,malware-analyzer,malware-detection,framework,automation", "license": "Apache License 2.0", "maintainer": "", "maintainer_email": "", "name": "stoq-framework", "package_url": "https://pypi.org/project/stoq-framework/", "platform": "", "project_url": "https://pypi.org/project/stoq-framework/", "project_urls": { "Homepage": "https://github.com/PUNCH-Cyber/stoq" }, "release_url": "https://pypi.org/project/stoq-framework/2.0.5/", "requires_dist": null, "requires_python": ">=3.6", "summary": "A framework for simplifying analysis.", "version": "2.0.5" }, "last_serial": 5371580, "releases": { "2.0.0": [ { "comment_text": "", "digests": { "md5": "be169ee1b041e4e85c3686938a0557c5", "sha256": "6c2462569f0d25498d69f83af0ac00440bb441693947089543194ac297b59fb7" }, "downloads": -1, "filename": "stoq-framework-2.0.0.tar.gz", "has_sig": false, "md5_digest": "be169ee1b041e4e85c3686938a0557c5", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 43862, "upload_time": "2018-12-18T13:47:34", "url": "https://files.pythonhosted.org/packages/82/04/16bbbf35a181deba207c7586d2dbca6b3be90f8ff48ec64ea64d0089ac2b/stoq-framework-2.0.0.tar.gz" } ], "2.0.0rc1": [ { "comment_text": "", "digests": { "md5": "755ddd0d16eb39dca8985c6dcc1bea38", "sha256": "f86191088b56e185811cf6e43b6158634a0d35c64c8827962b2b884bd10f3a0c" }, "downloads": -1, "filename": "stoq_framework-2.0.0rc1-py3.7.egg", "has_sig": false, "md5_digest": "755ddd0d16eb39dca8985c6dcc1bea38", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": ">=3.6", "size": 132323, "upload_time": "2018-11-29T01:27:22", "url": "https://files.pythonhosted.org/packages/65/1a/1d582da2da9a3c17b4d0d18ad3f78837712e33cd3d44e4acddd3d7721129/stoq_framework-2.0.0rc1-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "0fae9566d243e6ee7d48d6f2c52b6fed", "sha256": "de586c6fcbbff74121b5ff5091349a62668aa97702c7024c572b149bbbca6045" }, "downloads": -1, "filename": "stoq-framework-2.0.0rc1.tar.gz", "has_sig": false, "md5_digest": "0fae9566d243e6ee7d48d6f2c52b6fed", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 23590, "upload_time": "2018-11-01T13:02:16", "url": "https://files.pythonhosted.org/packages/bc/c1/10242d9ddc2b65107dc1bc00a481a253fa83c23f961d6ccf7ed4c140902b/stoq-framework-2.0.0rc1.tar.gz" } ], "2.0.0rc2": [ { "comment_text": "", "digests": { "md5": "1f72d3a7091965042cfde65a3c94e82e", "sha256": "e784e0807363f633a331bc2c85719af64301a9f1832e2b68ce0ae6cfff719680" }, "downloads": -1, "filename": "stoq_framework-2.0.0rc2-py3.7.egg", "has_sig": false, "md5_digest": "1f72d3a7091965042cfde65a3c94e82e", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": ">=3.6", "size": 82727, "upload_time": "2018-11-29T01:27:23", "url": "https://files.pythonhosted.org/packages/e6/d9/983da98b55556813f7576ff41ba19de384250846affa82a09b3ffa7c7ea9/stoq_framework-2.0.0rc2-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "5c4964815ab422fed1061b10f46a4f89", "sha256": "be2057f4bf4b7aa587e51059a4a1c60ed1beb810167f12bb6e35c487ab49d7f4" }, "downloads": -1, "filename": "stoq-framework-2.0.0rc2.tar.gz", "has_sig": false, "md5_digest": "5c4964815ab422fed1061b10f46a4f89", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 42718, "upload_time": "2018-11-29T01:27:20", "url": "https://files.pythonhosted.org/packages/99/56/837ae86fcb04c808824245333df031f353486863e8acf61f207cd8b549a5/stoq-framework-2.0.0rc2.tar.gz" } ], "2.0.0rc4": [ { "comment_text": "", "digests": { "md5": "c6b060286cca2ce654b76d8e6b772bdc", "sha256": "7bd5aab802dab0dad49114a4a176bb0bc0ccb3d8be08f70ddc70aef1dbcb667c" }, "downloads": -1, "filename": "stoq_framework-2.0.0rc4-py3.7.egg", "has_sig": false, "md5_digest": "c6b060286cca2ce654b76d8e6b772bdc", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": ">=3.6", "size": 154140, "upload_time": "2018-12-16T23:56:50", "url": "https://files.pythonhosted.org/packages/9a/40/4d88cfdd30ab113154015cc3600218ac1d02c151770ad3c87dec370d95c3/stoq_framework-2.0.0rc4-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "79efacbded97ac89c6c9b2a82e21c5f4", "sha256": "ffc2aa498cd7521f8ba62d78dacbd8a53bc4d0189a669ee619402e1ffbc41399" }, "downloads": -1, "filename": "stoq-framework-2.0.0rc4.tar.gz", "has_sig": false, "md5_digest": "79efacbded97ac89c6c9b2a82e21c5f4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 43847, "upload_time": "2018-12-13T03:33:58", "url": "https://files.pythonhosted.org/packages/55/93/f3fa9477a32029fad3f38504a51c38184c2d03cdcb24fa4de6caf789efdf/stoq-framework-2.0.0rc4.tar.gz" } ], "2.0.0rc5": [ { "comment_text": "", "digests": { "md5": "020418c5bb9cfe17567b2e40906a0383", "sha256": "2698c7be804be4664c0ecfe7dadd5f6e34618f2b52866a0f3813da5020971d3d" }, "downloads": -1, "filename": "stoq-framework-2.0.0rc5.tar.gz", "has_sig": false, "md5_digest": "020418c5bb9cfe17567b2e40906a0383", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 44414, "upload_time": "2018-12-16T23:56:48", "url": "https://files.pythonhosted.org/packages/6b/2a/992b69fa023fd1bad52e1ab8896523e66388a5767437c25c9614346278d4/stoq-framework-2.0.0rc5.tar.gz" } ], "2.0.0rc6": [ { "comment_text": "", "digests": { "md5": "2813b04a97c11603a2e5db989ad9c521", "sha256": "8f3d573b865b5aa1bd7772d4f8db61edf2fd968fec2b245d0f84504d8b729fb3" }, "downloads": -1, "filename": "stoq-framework-2.0.0rc6.tar.gz", "has_sig": false, "md5_digest": "2813b04a97c11603a2e5db989ad9c521", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 44537, "upload_time": "2018-12-17T15:35:56", "url": "https://files.pythonhosted.org/packages/cf/b0/44f3e908812e150ff2d3f9303862a36e18e2929f7010884b6e6aafdd1b99/stoq-framework-2.0.0rc6.tar.gz" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "e2b98fa80ce26248df48c6949edf46a0", "sha256": "bd861d3823372b59380c129397deed6add2d30e8cdcca83a1aee69f064838fab" }, "downloads": -1, "filename": "stoq-framework-2.0.1.tar.gz", "has_sig": false, "md5_digest": "e2b98fa80ce26248df48c6949edf46a0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 44808, "upload_time": "2019-01-11T04:23:22", "url": "https://files.pythonhosted.org/packages/cd/a1/169206971a8b375944a000baeb36741086ce7db17b2d58aff7051d5ebfe2/stoq-framework-2.0.1.tar.gz" } ], "2.0.2": [ { "comment_text": "", "digests": { "md5": "d07bfbae9fc9cc77346644fd32ec664b", "sha256": "d4663ae609ed008311e37fd4b1f7afc2a5b8f886b3d4c199d10cf11c2d5c1f24" }, "downloads": -1, "filename": "stoq-framework-2.0.2.tar.gz", "has_sig": false, "md5_digest": "d07bfbae9fc9cc77346644fd32ec664b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 44835, "upload_time": "2019-01-15T03:16:30", "url": "https://files.pythonhosted.org/packages/15/99/4c788abe43f42fd225dbe22217015a1ac8f9ef37d1734a1afdc94d89d1b1/stoq-framework-2.0.2.tar.gz" } ], "2.0.3": [ { "comment_text": "", "digests": { "md5": "e4d684d3292289e22e48b2b58204a018", "sha256": "0ba5b4e3fbbf842f29364800250f2903ffee845d60cb33a4aa46cda4ad5b1b60" }, "downloads": -1, "filename": "stoq-framework-2.0.3.tar.gz", "has_sig": false, "md5_digest": "e4d684d3292289e22e48b2b58204a018", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 45850, "upload_time": "2019-02-15T15:57:10", "url": "https://files.pythonhosted.org/packages/e9/11/0e949a014c0f48dab04ba66ffd42e2963137f62e3e4ea69a336f38b5546e/stoq-framework-2.0.3.tar.gz" } ], "2.0.4": [ { "comment_text": "", "digests": { "md5": "fd188c75431685f70cd5ee9ba9639e27", "sha256": "330018ea847b8e9f557d5f1c58216b01e0a4d70d58eb1eeefe8d2756e5b282f6" }, "downloads": -1, "filename": "stoq-framework-2.0.4.tar.gz", "has_sig": false, "md5_digest": "fd188c75431685f70cd5ee9ba9639e27", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 47563, "upload_time": "2019-03-29T14:43:44", "url": "https://files.pythonhosted.org/packages/6c/c3/3ac38d91ef4fde20ae75b6d4af2a7908a62b81815bd4dbe01ce10b16bffa/stoq-framework-2.0.4.tar.gz" } ], "2.0.5": [ { "comment_text": "", "digests": { "md5": "04e99fa1c38f08dacbba7522d9f4743a", "sha256": "95680717a11f1a6bd66587133b1d75f39d6af4ac198b202fc5e80ba2cf3d29e9" }, "downloads": -1, "filename": "stoq-framework-2.0.5.tar.gz", "has_sig": false, "md5_digest": "04e99fa1c38f08dacbba7522d9f4743a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 48094, "upload_time": "2019-06-07T13:41:23", "url": "https://files.pythonhosted.org/packages/86/94/95c6f6e36729b3e7cb1b078eeefee51d06fa52e143726a323bdad06abfbb/stoq-framework-2.0.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "04e99fa1c38f08dacbba7522d9f4743a", "sha256": "95680717a11f1a6bd66587133b1d75f39d6af4ac198b202fc5e80ba2cf3d29e9" }, "downloads": -1, "filename": "stoq-framework-2.0.5.tar.gz", "has_sig": false, "md5_digest": "04e99fa1c38f08dacbba7522d9f4743a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 48094, "upload_time": "2019-06-07T13:41:23", "url": "https://files.pythonhosted.org/packages/86/94/95c6f6e36729b3e7cb1b078eeefee51d06fa52e143726a323bdad06abfbb/stoq-framework-2.0.5.tar.gz" } ] }