{"id":13733982,"url":"https://github.com/smarkets/flake8-strict","last_synced_at":"2026-04-07T07:48:18.576Z","repository":{"id":57430027,"uuid":"44667012","full_name":"smarkets/flake8-strict","owner":"smarkets","description":"Flake8 plugin that checks Python code against a set of opinionated style rules","archived":false,"fork":false,"pushed_at":"2018-05-30T14:07:56.000Z","size":49,"stargazers_count":10,"open_issues_count":4,"forks_count":6,"subscribers_count":6,"default_branch":"master","last_synced_at":"2026-04-07T07:48:15.302Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/smarkets.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-10-21T09:48:35.000Z","updated_at":"2019-07-09T03:50:59.000Z","dependencies_parsed_at":"2022-08-26T03:24:44.445Z","dependency_job_id":null,"html_url":"https://github.com/smarkets/flake8-strict","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/smarkets/flake8-strict","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smarkets%2Fflake8-strict","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smarkets%2Fflake8-strict/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smarkets%2Fflake8-strict/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smarkets%2Fflake8-strict/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/smarkets","download_url":"https://codeload.github.com/smarkets/flake8-strict/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smarkets%2Fflake8-strict/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31504897,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T03:10:19.677Z","status":"ssl_error","status_checked_at":"2026-04-07T03:10:13.982Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T03:00:51.462Z","updated_at":"2026-04-07T07:48:18.553Z","avatar_url":"https://github.com/smarkets.png","language":"Python","funding_links":[],"categories":["Clean code"],"sub_categories":[],"readme":"flake8-strict\n=============\n\n.. image:: https://travis-ci.org/smarkets/flake8-strict.png?branch=master\n   :alt: Build status\n   :target: https://travis-ci.org/smarkets/flake8-strict\n\nFlake8 plugin that checks Python code against a set of opinionated style rules.\n\nCompatible with Python 2.7, 3.3+, PyPy 2.6+ and PyPy 2.4+.\n\nPyPI page: https://pypi.python.org/pypi/flake8_strict\n\nGitHub page: https://github.com/smarkets/flake8-strict\n\nTo install using PyPI and pip::\n\n    pip install flake8-strict\n\n\nError codes\n-----------\n\n* ``S100``: First argument on the same line\n* ``S101``: Multi-line construct missing trailing comma\n\n\nLimitations\n-----------\n\n* only source code without print statements is supported, this means:\n\n  * all valid Python 3 code\n  * Python 2 code with ``print_function`` enabled\n\n* the existing checks are quite basic, they'll be improved and new\n  ones will added\n* line/column numbers are off currently\n* code like this will cause a parsing error (lib2to3.pgen2.parse.ParseError:\n  bad input)::\n\n      some_name(\n          x for x in range(1),\n      )\n\n  It's ironic but the trailing comma is the issue here, without it parsing\n  works ok::\n\n      some_name(\n          x for x in range(1)\n      )\n\n  This is a limitation of the underlying parser library and is unlikely to\n  be fixed in near future. Suggested workaround: wrap the generator in\n  parentheses, like this::\n\n      some_name(\n          (x for x in range(1)),\n      )\n\n  If the function being called is dict or set the function calls can be\n  replaced with dict and set comprehensions therefore avoiding the issue\n  completely.\n\n\n\nVersioning and backwards compatibility\n--------------------------------------\n\nBelow 1.0.0: no guarantees.\nAbove 1.0.0, given a version number MAJOR.MINOR.PATCH:\n\n* MAJOR is updated when backwards incompatible changes happen\n* MINOR is updated when a new, backwards compatible, features are introduced\n* PATCH is updated when a backwards compatible bug fixes are applied\n\nChanges\n-------\n\n0.2.1\n'''''\n\n* Fix blib2to3 import\n\n0.2.0\n'''''\n\n* Use custom lib2to3 for better support for Python 3.6+\n* Fix trailing comma after *args/**kwargs for Python 3.6+\n* Allow usage of Python 3.6 features (e.g f-strings) without crashing\n\n0.1.9\n'''''\n\n* Fixed elements inside class definition not being linted correctly (issue #36)\n\n0.1.8\n'''''\n\n* Revert previous change (0.1.7) due to a lib2to3 issue.\n\n0.1.7\n'''''\n\n* Fixed trailing comma after *args/**kwargs for Python 3.6+ (issue #25)\n\n0.1.6\n'''''\n\n* Fixed decorator arguments not being linted.\n* Fixed multiline imports not being linted.\n* Fixed class definitions not being linted.\n\n0.1.5\n'''''\n\n* Fixed UnicodeDecodeError if file contains non-ascii symbols (issue #22)\n* Fixed error if newline is omitted from end of file (issue #18)\n* Fixed erroneous comma suggested when unpacking function parameter (issue #21)\n\n0.1.4\n'''''\n\n* Fixed handling of one-element lists (https://github.com/smarkets/flake8-strict/issues/15)\n\n0.1.3\n'''''\n\n* Fixed reading from stdin\n* Fixed not being able to run when pycodestyle, not pep8, is installed (pep8\n  has been renamed to pycodestyle and flake8 2.6.0+ doesn't trigger pep8\n  installation anymore)\n* Added support for set, list and dict literals and comprehensions\n* Function calls with single, multi-line arguments are now treated more reasonably\n\n0.1.2\n'''''\n\n* Fixed a \"ValueError: need more than 2 values to unpack\" error (GitHub issue #1).\n* Fixed handling argument lists with keyword-only arguments\n  (compatibility with PEP 3102), this now doesn't raise S101 in this\n  case as it would be a syntax error.\n\n0.1.1\n'''''\n\n* Fixed few ``AttributeError: 'Node' object has no attribute 'lineno'`` errors\n\n0.1.0\n'''''\n\nFirst release\n\n\nLicense\n-------\n\nCopyright (C) 2015 Smarkets Limited \u003csupport@smarkets.com\u003e\n\nThis module is released under the MIT License: http://www.opensource.org/licenses/mit-license.php (or see the LICENSE file)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmarkets%2Fflake8-strict","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsmarkets%2Fflake8-strict","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmarkets%2Fflake8-strict/lists"}