Comments (6)
@dark ahhhhh sorry my eyes glazed over that, of course. Thanks.
from pyre-check.
Hi @jasonkuhrt , Pyre is warning you that you gen
does not return any value. You need to add a return
statement for that to work. That is also the case for the basic
function.
basic
does not throw any visible error here because string
is not a type (for the record, this is the stub for the string module: https://github.com/python/typeshed/blob/master/stdlib/3/string.pyi)
You can see more low-level errors like this with pyre --debug check
:
foo.py:68:4 Incompatible return type [7]: Expected
str
but gotNone
.
foo.py:70:0 Undefined type [11]: Typestring
is not defined.
After correcting the file, no errors are generated for me:
import random
import string
def gen(allowed_chars: str, length: int) -> str:
return ''.join([random.choice(allowed_chars) for _ in range(1, length)])
def basic(length: int) -> str:
return gen(string.ascii_letters + string.digits, length)
Feel free to reopen this issue if you have further related questions.
from pyre-check.
basic does not throw any visible error here because string is not a type
I don't understand this. basic
returns None
but its type says that it will return str
. What am I doing wrong exactly?
from pyre-check.
Let me rephrase - the error about a missing return in basic
is being masked by the use of an unknown type string
. In cases like this we are trying to be conservative and not display the error because the type might be legitimate and simply not being defined in a stub.
from pyre-check.
@dark I see, thanks. Could I fix this at the project level via local defs? The issue is that I'm using e.g. ascii_letters
which has def:
ascii_letters = ... # type: str
from pyre-check.
@jasonkuhrt Using the imported string
module is totally fine -- and it works!
The problem was with the following incorrect type definition for the parameter of gen
: allowed_chars: string
. String is a module, not a type, so the correct definition would be allowed_chars: str
. Please see the fixed code I posted in my first comment for all things I needed to change.
from pyre-check.
Related Issues (20)
- Pyre fail with a dependencies not found error
- Set Custom Log Path Directory Via CLI or Config File HOT 4
- Pyre doesn't seem to understand universal quantification HOT 2
- Pyre couldn't find a required site-package HOT 1
- Parsing failure [404]: f-string expression part cannot include a backslash HOT 1
- Pyre infers set-of-literals as set[str] rather than set[MyLiteral] HOT 1
- Null
- Ask for if also import pysa-filter for `sapp` when run `pyre init-pysa`
- Allow use of pyre_extensions in pyre playground, use newer typing_extensions
- Mutable attributes of classes should be invariant in subclasses. HOT 1
- Internal crash: Raised in src/string.ml HOT 11
- Pyre doesn't understand for-else statement HOT 1
- Is it possible to taint specific values of parameters? HOT 2
- Tainting Python Builtin Functions! How do we do this? HOT 1
- Module boto3 - Taint Propagation Issue HOT 3
- Context Manager - Taint Propagation Issue
- PySpark - Incompatible parameter type & Unsupported operand HOT 1
- [Pyre setup.sh] Terminal closes while building from source HOT 2
- Pysa tutorial not working HOT 4
- Find lambdas are not checked correctly
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pyre-check.