mirror of
https://github.com/Gallopsled/pwntools.git
synced 2026-10-12 02:02:27 +00:00
* Travis CI: Use flake8 to detect syntax errors Repeat #1305 on the Python 3 branch. Also, remove the hardcoding of default values for dist and Py2. https://flake8.pycqa.org/en/latest/user/error-codes.html On the flake8 test selection, this PR does _not_ focus on "_style violations_" (the majority of flake8 error codes that [__psf/black__](https://github.com/psf/black) can autocorrect). Instead these tests are focus on runtime safety and correctness: * E9 tests are about Python syntax errors usually raised because flake8 can not build an Abstract Syntax Tree (AST). Often these issues are a sign of unused code or code that has not been ported to Python 3. These would be compile-time errors in a compiled language but in a dynamic language like Python they result in the script halting/crashing on the user. * F63 tests are usually about the confusion between identity and equality in Python. Use ==/!= to compare str, bytes, and int literals is the classic case. These are areas where __a == b__ is True but __a is b__ is False (or vice versa). Python >= 3.8 will raise SyntaxWarnings on these instances. * F7 tests logic errors and syntax errors in type hints * F82 tests are almost always _undefined names_ which are usually a sign of a typo, missing imports, or code that has not been ported to Python 3. These also would be compile-time errors in a compiled language but in Python a __NameError__ is raised which will halt/crash the script on the user. * Fail fast, exclude generated source files * --select=E9,F63,F7 * 2to3 -f print -wn examples * No more <> in python 3.
19 lines
461 B
Python
19 lines
461 B
Python
"""
|
|
When not in lib-mode (import `pwn` rather than `pwnlib`) we parse the
|
|
commandline for variables definitions. A variable definition has the form::
|
|
|
|
<var>=<val>
|
|
|
|
where ``<var>`` contains only uppercase letters, digits and underscores and
|
|
doesn't start with a digit.
|
|
|
|
Try running this example with::
|
|
|
|
$ python args.py RHOST=localhost RPORT=1337
|
|
"""
|
|
|
|
from pwn import *
|
|
|
|
print(args['RHOST'] or 'RHOST is not set')
|
|
print(args['RPORT'] or 'RPORT is not set')
|