Merge pull request #2802 from eldpswp99/iskeyword-none-check

add iskeyword None check
This commit is contained in:
Jim Fasarakis-Hilliard
2021-08-07 15:43:02 +03:00
committed by GitHub
2 changed files with 7 additions and 5 deletions

View File

@@ -9,8 +9,6 @@ class Test_iskeyword(unittest.TestCase):
def test_uppercase_true_is_not_a_keyword(self):
self.assertFalse(keyword.iskeyword('TRUE'))
# TODO: RUSTPYTHON
@unittest.expectedFailure
def test_none_value_is_not_a_keyword(self):
self.assertFalse(keyword.iskeyword(None))

View File

@@ -6,13 +6,17 @@ mod decl {
use itertools::Itertools;
use rustpython_parser::lexer;
use crate::builtins::pystr::PyStrRef;
use crate::builtins::PyStr;
use crate::vm::VirtualMachine;
use crate::PyObjectRef;
#[pyfunction]
fn iskeyword(s: PyStrRef) -> bool {
lexer::KEYWORDS.contains_key(s.as_str())
fn iskeyword(s: PyObjectRef) -> bool {
if let Some(s) = s.payload::<PyStr>() {
lexer::KEYWORDS.contains_key(s.as_str())
} else {
false
}
}
#[pyattr]