diff --git a/spacy/lexeme.pxd b/spacy/lexeme.pxd index ff2e4f92e..a16a14f76 100644 --- a/spacy/lexeme.pxd +++ b/spacy/lexeme.pxd @@ -35,7 +35,7 @@ cdef class Lexeme: return self @staticmethod - cdef inline void set_struct_attr(LexemeC* lex, attr_id_t name, attr_t value) nogil: + cdef inline void set_struct_attr(LexemeC* lex, attr_id_t name, attr_t value) noexcept nogil: if name < (sizeof(flags_t) * 8): Lexeme.c_set_flag(lex, name, value) elif name == ID: @@ -54,7 +54,7 @@ cdef class Lexeme: lex.lang = value @staticmethod - cdef inline attr_t get_struct_attr(const LexemeC* lex, attr_id_t feat_name) nogil: + cdef inline attr_t get_struct_attr(const LexemeC* lex, attr_id_t feat_name) noexcept nogil: if feat_name < (sizeof(flags_t) * 8): if Lexeme.c_check_flag(lex, feat_name): return 1 @@ -82,7 +82,7 @@ cdef class Lexeme: return 0 @staticmethod - cdef inline bint c_check_flag(const LexemeC* lexeme, attr_id_t flag_id) nogil: + cdef inline bint c_check_flag(const LexemeC* lexeme, attr_id_t flag_id) noexcept nogil: cdef flags_t one = 1 if lexeme.flags & (one << flag_id): return True @@ -90,7 +90,7 @@ cdef class Lexeme: return False @staticmethod - cdef inline bint c_set_flag(LexemeC* lex, attr_id_t flag_id, bint value) nogil: + cdef inline bint c_set_flag(LexemeC* lex, attr_id_t flag_id, bint value) noexcept nogil: cdef flags_t one = 1 if value: lex.flags |= one << flag_id diff --git a/spacy/matcher/levenshtein.pyx b/spacy/matcher/levenshtein.pyx index e394f2cf4..1f9cd1ba2 100644 --- a/spacy/matcher/levenshtein.pyx +++ b/spacy/matcher/levenshtein.pyx @@ -1,4 +1,4 @@ -# cython: binding=True, infer_types=True +# cython: binding=True, infer_types=True, language_level=3 from cpython.object cimport PyObject from libc.stdint cimport int64_t diff --git a/spacy/matcher/matcher.pyx b/spacy/matcher/matcher.pyx index 9a9ed4212..64c26c82a 100644 --- a/spacy/matcher/matcher.pyx +++ b/spacy/matcher/matcher.pyx @@ -625,7 +625,7 @@ cdef action_t get_action( const TokenC * token, const attr_t * extra_attrs, const int8_t * predicate_matches -) nogil: +) noexcept nogil: """We need to consider: a) Does the token match the specification? [Yes, No] b) What's the quantifier? [1, 0+, ?] @@ -740,7 +740,7 @@ cdef int8_t get_is_match( const TokenC* token, const attr_t* extra_attrs, const int8_t* predicate_matches -) nogil: +) noexcept nogil: for i in range(state.pattern.nr_py): if predicate_matches[state.pattern.py_predicates[i]] == -1: return 0 @@ -755,14 +755,14 @@ cdef int8_t get_is_match( return True -cdef inline int8_t get_is_final(PatternStateC state) nogil: +cdef inline int8_t get_is_final(PatternStateC state) noexcept nogil: if state.pattern[1].quantifier == FINAL_ID: return 1 else: return 0 -cdef inline int8_t get_quantifier(PatternStateC state) nogil: +cdef inline int8_t get_quantifier(PatternStateC state) noexcept nogil: return state.pattern.quantifier @@ -805,7 +805,7 @@ cdef TokenPatternC* init_pattern(Pool mem, attr_t entity_id, object token_specs) return pattern -cdef attr_t get_ent_id(const TokenPatternC* pattern) nogil: +cdef attr_t get_ent_id(const TokenPatternC* pattern) noexcept nogil: while pattern.quantifier != FINAL_ID: pattern += 1 id_attr = pattern[0].attrs[0] diff --git a/spacy/ml/parser_model.pyx b/spacy/ml/parser_model.pyx index f004c562e..96f2487ef 100644 --- a/spacy/ml/parser_model.pyx +++ b/spacy/ml/parser_model.pyx @@ -52,14 +52,14 @@ cdef SizesC get_c_sizes(model, int batch_size) except *: return output -cdef ActivationsC alloc_activations(SizesC n) nogil: +cdef ActivationsC alloc_activations(SizesC n) noexcept nogil: cdef ActivationsC A memset(&A, 0, sizeof(A)) resize_activations(&A, n) return A -cdef void free_activations(const ActivationsC* A) nogil: +cdef void free_activations(const ActivationsC* A) noexcept nogil: free(A.token_ids) free(A.scores) free(A.unmaxed) @@ -67,7 +67,7 @@ cdef void free_activations(const ActivationsC* A) nogil: free(A.is_valid) -cdef void resize_activations(ActivationsC* A, SizesC n) nogil: +cdef void resize_activations(ActivationsC* A, SizesC n) noexcept nogil: if n.states <= A._max_size: A._curr_size = n.states return @@ -100,7 +100,7 @@ cdef void resize_activations(ActivationsC* A, SizesC n) nogil: cdef void predict_states( CBlas cblas, ActivationsC* A, StateC** states, const WeightsC* W, SizesC n -) nogil: +) noexcept nogil: resize_activations(A, n) for i in range(n.states): states[i].set_context_tokens(&A.token_ids[i*n.feats], n.feats) @@ -159,7 +159,7 @@ cdef void sum_state_features( int B, int F, int O -) nogil: +) noexcept nogil: cdef int idx, b, f cdef const float* feature padding = cached @@ -183,7 +183,7 @@ cdef void cpu_log_loss( const int* is_valid, const float* scores, int O -) nogil: +) noexcept nogil: """Do multi-label log loss""" cdef double max_, gmax, Z, gZ best = arg_max_if_gold(scores, costs, is_valid, O) @@ -209,7 +209,7 @@ cdef void cpu_log_loss( cdef int arg_max_if_gold( const weight_t* scores, const weight_t* costs, const int* is_valid, int n -) nogil: +) noexcept nogil: # Find minimum cost cdef float cost = 1 for i in range(n): @@ -224,7 +224,7 @@ cdef int arg_max_if_gold( return best -cdef int arg_max_if_valid(const weight_t* scores, const int* is_valid, int n) nogil: +cdef int arg_max_if_valid(const weight_t* scores, const int* is_valid, int n) noexcept nogil: cdef int best = -1 for i in range(n): if is_valid[i] >= 1: diff --git a/spacy/pipeline/_parser_internals/_state.pxd b/spacy/pipeline/_parser_internals/_state.pxd index aa3802bf7..ea1a7874b 100644 --- a/spacy/pipeline/_parser_internals/_state.pxd +++ b/spacy/pipeline/_parser_internals/_state.pxd @@ -17,7 +17,7 @@ from ...typedefs cimport attr_t from ...vocab cimport EMPTY_LEXEME -cdef inline bint is_space_token(const TokenC* token) nogil: +cdef inline bint is_space_token(const TokenC* token) noexcept nogil: return Lexeme.c_check_flag(token.lex, IS_SPACE) cdef struct ArcC: @@ -41,7 +41,7 @@ cdef cppclass StateC: int offset int _b_i - inline __init__(const TokenC* sent, int length) nogil: + inline __init__(const TokenC* sent, int length) noexcept nogil: this._sent = sent this._heads = calloc(length, sizeof(int)) if not (this._sent and this._heads): @@ -60,7 +60,7 @@ cdef cppclass StateC: inline __dealloc__(): free(this._heads) - inline void set_context_tokens(int* ids, int n) nogil: + inline void set_context_tokens(int* ids, int n) noexcept nogil: cdef int i, j if n == 1: if this.B(0) >= 0: @@ -131,14 +131,14 @@ cdef cppclass StateC: else: ids[i] = -1 - inline int S(int i) nogil const: + inline int S(int i) noexcept nogil const: if i >= this._stack.size(): return -1 elif i < 0: return -1 return this._stack.at(this._stack.size() - (i+1)) - inline int B(int i) nogil const: + inline int B(int i) noexcept nogil const: if i < 0: return -1 elif i < this._rebuffer.size(): @@ -150,19 +150,19 @@ cdef cppclass StateC: else: return b_i - inline const TokenC* B_(int i) nogil const: + inline const TokenC* B_(int i) noexcept nogil const: return this.safe_get(this.B(i)) - inline const TokenC* E_(int i) nogil const: + inline const TokenC* E_(int i) noexcept nogil const: return this.safe_get(this.E(i)) - inline const TokenC* safe_get(int i) nogil const: + inline const TokenC* safe_get(int i) noexcept nogil const: if i < 0 or i >= this.length: return &this._empty_token else: return &this._sent[i] - inline void map_get_arcs(const unordered_map[int, vector[ArcC]] &heads_arcs, vector[ArcC]* out) nogil const: + inline void map_get_arcs(const unordered_map[int, vector[ArcC]] &heads_arcs, vector[ArcC]* out) noexcept nogil const: cdef const vector[ArcC]* arcs head_arcs_it = heads_arcs.const_begin() while head_arcs_it != heads_arcs.const_end(): @@ -175,23 +175,23 @@ cdef cppclass StateC: incr(arcs_it) incr(head_arcs_it) - inline void get_arcs(vector[ArcC]* out) nogil const: + inline void get_arcs(vector[ArcC]* out) noexcept nogil const: this.map_get_arcs(this._left_arcs, out) this.map_get_arcs(this._right_arcs, out) - inline int H(int child) nogil const: + inline int H(int child) noexcept nogil const: if child >= this.length or child < 0: return -1 else: return this._heads[child] - inline int E(int i) nogil const: + inline int E(int i) noexcept nogil const: if this._ents.size() == 0: return -1 else: return this._ents.back().start - inline int nth_child(const unordered_map[int, vector[ArcC]]& heads_arcs, int head, int idx) nogil const: + inline int nth_child(const unordered_map[int, vector[ArcC]]& heads_arcs, int head, int idx) noexcept nogil const: if idx < 1: return -1 @@ -215,22 +215,22 @@ cdef cppclass StateC: return -1 - inline int L(int head, int idx) nogil const: + inline int L(int head, int idx) noexcept nogil const: return this.nth_child(this._left_arcs, head, idx) - inline int R(int head, int idx) nogil const: + inline int R(int head, int idx) noexcept nogil const: return this.nth_child(this._right_arcs, head, idx) - inline bint empty() nogil const: + inline bint empty() noexcept nogil const: return this._stack.size() == 0 - inline bint eol() nogil const: + inline bint eol() noexcept nogil const: return this.buffer_length() == 0 - inline bint is_final() nogil const: + inline bint is_final() noexcept nogil const: return this.stack_depth() <= 0 and this.eol() - inline int cannot_sent_start(int word) nogil const: + inline int cannot_sent_start(int word) noexcept nogil const: if word < 0 or word >= this.length: return 0 elif this._sent[word].sent_start == -1: @@ -238,7 +238,7 @@ cdef cppclass StateC: else: return 0 - inline int is_sent_start(int word) nogil const: + inline int is_sent_start(int word) noexcept nogil const: if word < 0 or word >= this.length: return 0 elif this._sent[word].sent_start == 1: @@ -248,20 +248,20 @@ cdef cppclass StateC: else: return 0 - inline void set_sent_start(int word, int value) nogil: + inline void set_sent_start(int word, int value) noexcept nogil: if value >= 1: this._sent_starts.insert(word) - inline bint has_head(int child) nogil const: + inline bint has_head(int child) noexcept nogil const: return this._heads[child] >= 0 - inline int l_edge(int word) nogil const: + inline int l_edge(int word) noexcept nogil const: return word - inline int r_edge(int word) nogil const: + inline int r_edge(int word) noexcept nogil const: return word - inline int n_arcs(const unordered_map[int, vector[ArcC]] &heads_arcs, int head) nogil const: + inline int n_arcs(const unordered_map[int, vector[ArcC]] &heads_arcs, int head) noexcept nogil const: cdef int n = 0 head_arcs_it = heads_arcs.const_find(head) if head_arcs_it == heads_arcs.const_end(): @@ -277,28 +277,28 @@ cdef cppclass StateC: return n - inline int n_L(int head) nogil const: + inline int n_L(int head) noexcept nogil const: return n_arcs(this._left_arcs, head) - inline int n_R(int head) nogil const: + inline int n_R(int head) noexcept nogil const: return n_arcs(this._right_arcs, head) - inline bint stack_is_connected() nogil const: + inline bint stack_is_connected() noexcept nogil const: return False - inline bint entity_is_open() nogil const: + inline bint entity_is_open() noexcept nogil const: if this._ents.size() == 0: return False else: return this._ents.back().end == -1 - inline int stack_depth() nogil const: + inline int stack_depth() noexcept nogil const: return this._stack.size() - inline int buffer_length() nogil const: + inline int buffer_length() noexcept nogil const: return (this.length - this._b_i) + this._rebuffer.size() - inline void push() nogil: + inline void push() noexcept nogil: b0 = this.B(0) if this._rebuffer.size(): b0 = this._rebuffer.back() @@ -308,32 +308,32 @@ cdef cppclass StateC: this._b_i += 1 this._stack.push_back(b0) - inline void pop() nogil: + inline void pop() noexcept nogil: this._stack.pop_back() - inline void force_final() nogil: + inline void force_final() noexcept nogil: # This should only be used in desperate situations, as it may leave # the analysis in an unexpected state. this._stack.clear() this._b_i = this.length - inline void unshift() nogil: + inline void unshift() noexcept nogil: s0 = this._stack.back() this._unshiftable[s0] = 1 this._rebuffer.push_back(s0) this._stack.pop_back() - inline int is_unshiftable(int item) nogil const: + inline int is_unshiftable(int item) noexcept nogil const: if item >= this._unshiftable.size(): return 0 else: return this._unshiftable.at(item) - inline void set_reshiftable(int item) nogil: + inline void set_reshiftable(int item) noexcept nogil: if item < this._unshiftable.size(): this._unshiftable[item] = 0 - inline void add_arc(int head, int child, attr_t label) nogil: + inline void add_arc(int head, int child, attr_t label) noexcept nogil: if this.has_head(child): this.del_arc(this.H(child), child) cdef ArcC arc @@ -346,7 +346,7 @@ cdef cppclass StateC: this._right_arcs[arc.head].push_back(arc) this._heads[child] = head - inline void map_del_arc(unordered_map[int, vector[ArcC]]* heads_arcs, int h_i, int c_i) nogil: + inline void map_del_arc(unordered_map[int, vector[ArcC]]* heads_arcs, int h_i, int c_i) noexcept nogil: arcs_it = heads_arcs.find(h_i) if arcs_it == heads_arcs.end(): return @@ -367,13 +367,13 @@ cdef cppclass StateC: arc.label = 0 break - inline void del_arc(int h_i, int c_i) nogil: + inline void del_arc(int h_i, int c_i) noexcept nogil: if h_i > c_i: this.map_del_arc(&this._left_arcs, h_i, c_i) else: this.map_del_arc(&this._right_arcs, h_i, c_i) - inline SpanC get_ent() nogil const: + inline SpanC get_ent() noexcept nogil const: cdef SpanC ent if this._ents.size() == 0: ent.start = 0 @@ -383,17 +383,17 @@ cdef cppclass StateC: else: return this._ents.back() - inline void open_ent(attr_t label) nogil: + inline void open_ent(attr_t label) noexcept nogil: cdef SpanC ent ent.start = this.B(0) ent.label = label ent.end = -1 this._ents.push_back(ent) - inline void close_ent() nogil: + inline void close_ent() noexcept nogil: this._ents.back().end = this.B(0)+1 - inline void clone(const StateC* src) nogil: + inline void clone(const StateC* src) noexcept nogil: this.length = src.length this._sent = src._sent this._stack = src._stack diff --git a/spacy/pipeline/_parser_internals/arc_eager.pyx b/spacy/pipeline/_parser_internals/arc_eager.pyx index bedaaf9fe..cccd51fca 100644 --- a/spacy/pipeline/_parser_internals/arc_eager.pyx +++ b/spacy/pipeline/_parser_internals/arc_eager.pyx @@ -155,7 +155,7 @@ cdef GoldParseStateC create_gold_state( return gs -cdef void update_gold_state(GoldParseStateC* gs, const StateC* s) nogil: +cdef void update_gold_state(GoldParseStateC* gs, const StateC* s) noexcept nogil: for i in range(gs.length): gs.state_bits[i] = set_state_flag( gs.state_bits[i], @@ -239,12 +239,12 @@ def _get_aligned_sent_starts(example): return [None] * len(example.x) -cdef int check_state_gold(char state_bits, char flag) nogil: +cdef int check_state_gold(char state_bits, char flag) noexcept nogil: cdef char one = 1 return 1 if (state_bits & (one << flag)) else 0 -cdef int set_state_flag(char state_bits, char flag, int value) nogil: +cdef int set_state_flag(char state_bits, char flag, int value) noexcept nogil: cdef char one = 1 if value: return state_bits | (one << flag) @@ -252,27 +252,27 @@ cdef int set_state_flag(char state_bits, char flag, int value) nogil: return state_bits & ~(one << flag) -cdef int is_head_in_stack(const GoldParseStateC* gold, int i) nogil: +cdef int is_head_in_stack(const GoldParseStateC* gold, int i) noexcept nogil: return check_state_gold(gold.state_bits[i], HEAD_IN_STACK) -cdef int is_head_in_buffer(const GoldParseStateC* gold, int i) nogil: +cdef int is_head_in_buffer(const GoldParseStateC* gold, int i) noexcept nogil: return check_state_gold(gold.state_bits[i], HEAD_IN_BUFFER) -cdef int is_head_unknown(const GoldParseStateC* gold, int i) nogil: +cdef int is_head_unknown(const GoldParseStateC* gold, int i) noexcept nogil: return check_state_gold(gold.state_bits[i], HEAD_UNKNOWN) -cdef int is_sent_start(const GoldParseStateC* gold, int i) nogil: +cdef int is_sent_start(const GoldParseStateC* gold, int i) noexcept nogil: return check_state_gold(gold.state_bits[i], IS_SENT_START) -cdef int is_sent_start_unknown(const GoldParseStateC* gold, int i) nogil: +cdef int is_sent_start_unknown(const GoldParseStateC* gold, int i) noexcept nogil: return check_state_gold(gold.state_bits[i], SENT_START_UNKNOWN) # Helper functions for the arc-eager oracle -cdef weight_t push_cost(const StateC* state, const GoldParseStateC* gold) nogil: +cdef weight_t push_cost(const StateC* state, const GoldParseStateC* gold) noexcept nogil: cdef weight_t cost = 0 b0 = state.B(0) if b0 < 0: @@ -285,7 +285,7 @@ cdef weight_t push_cost(const StateC* state, const GoldParseStateC* gold) nogil: return cost -cdef weight_t pop_cost(const StateC* state, const GoldParseStateC* gold) nogil: +cdef weight_t pop_cost(const StateC* state, const GoldParseStateC* gold) noexcept nogil: cdef weight_t cost = 0 s0 = state.S(0) if s0 < 0: @@ -296,7 +296,7 @@ cdef weight_t pop_cost(const StateC* state, const GoldParseStateC* gold) nogil: return cost -cdef bint arc_is_gold(const GoldParseStateC* gold, int head, int child) nogil: +cdef bint arc_is_gold(const GoldParseStateC* gold, int head, int child) noexcept nogil: if is_head_unknown(gold, child): return True elif gold.heads[child] == head: @@ -305,7 +305,7 @@ cdef bint arc_is_gold(const GoldParseStateC* gold, int head, int child) nogil: return False -cdef bint label_is_gold(const GoldParseStateC* gold, int child, attr_t label) nogil: +cdef bint label_is_gold(const GoldParseStateC* gold, int child, attr_t label) noexcept nogil: if is_head_unknown(gold, child): return True elif label == 0: @@ -316,7 +316,7 @@ cdef bint label_is_gold(const GoldParseStateC* gold, int child, attr_t label) no return False -cdef bint _is_gold_root(const GoldParseStateC* gold, int word) nogil: +cdef bint _is_gold_root(const GoldParseStateC* gold, int word) noexcept nogil: return gold.heads[word] == word or is_head_unknown(gold, word) @@ -336,7 +336,7 @@ cdef class Shift: * Advance buffer """ @staticmethod - cdef bint is_valid(const StateC* st, attr_t label) nogil: + cdef bint is_valid(const StateC* st, attr_t label) noexcept nogil: if st.stack_depth() == 0: return 1 elif st.buffer_length() < 2: @@ -349,11 +349,11 @@ cdef class Shift: return 1 @staticmethod - cdef int transition(StateC* st, attr_t label) nogil: + cdef int transition(StateC* st, attr_t label) noexcept nogil: st.push() @staticmethod - cdef weight_t cost(const StateC* state, const void* _gold, attr_t label) nogil: + cdef weight_t cost(const StateC* state, const void* _gold, attr_t label) noexcept nogil: gold = _gold return gold.push_cost @@ -375,7 +375,7 @@ cdef class Reduce: cost by those arcs. """ @staticmethod - cdef bint is_valid(const StateC* st, attr_t label) nogil: + cdef bint is_valid(const StateC* st, attr_t label) noexcept nogil: if st.stack_depth() == 0: return False elif st.buffer_length() == 0: @@ -386,14 +386,14 @@ cdef class Reduce: return True @staticmethod - cdef int transition(StateC* st, attr_t label) nogil: + cdef int transition(StateC* st, attr_t label) noexcept nogil: if st.has_head(st.S(0)) or st.stack_depth() == 1: st.pop() else: st.unshift() @staticmethod - cdef weight_t cost(const StateC* state, const void* _gold, attr_t label) nogil: + cdef weight_t cost(const StateC* state, const void* _gold, attr_t label) noexcept nogil: gold = _gold if state.is_sent_start(state.B(0)): return 0 @@ -421,7 +421,7 @@ cdef class LeftArc: pop_cost - Arc(B[0], S[0], label) + (Arc(S[1], S[0]) if H(S[0]) else Arcs(S, S[0])) """ @staticmethod - cdef bint is_valid(const StateC* st, attr_t label) nogil: + cdef bint is_valid(const StateC* st, attr_t label) noexcept nogil: if st.stack_depth() == 0: return 0 elif st.buffer_length() == 0: @@ -434,7 +434,7 @@ cdef class LeftArc: return 1 @staticmethod - cdef int transition(StateC* st, attr_t label) nogil: + cdef int transition(StateC* st, attr_t label) noexcept nogil: st.add_arc(st.B(0), st.S(0), label) # If we change the stack, it's okay to remove the shifted mark, as # we can't get in an infinite loop this way. @@ -442,7 +442,7 @@ cdef class LeftArc: st.pop() @staticmethod - cdef inline weight_t cost(const StateC* state, const void* _gold, attr_t label) nogil: + cdef inline weight_t cost(const StateC* state, const void* _gold, attr_t label) noexcept nogil: gold = _gold cdef weight_t cost = gold.pop_cost s0 = state.S(0) @@ -474,7 +474,7 @@ cdef class RightArc: push_cost + (not shifted[b0] and Arc(B[1:], B[0])) - Arc(S[0], B[0], label) """ @staticmethod - cdef bint is_valid(const StateC* st, attr_t label) nogil: + cdef bint is_valid(const StateC* st, attr_t label) noexcept nogil: if st.stack_depth() == 0: return 0 elif st.buffer_length() == 0: @@ -488,12 +488,12 @@ cdef class RightArc: return 1 @staticmethod - cdef int transition(StateC* st, attr_t label) nogil: + cdef int transition(StateC* st, attr_t label) noexcept nogil: st.add_arc(st.S(0), st.B(0), label) st.push() @staticmethod - cdef inline weight_t cost(const StateC* state, const void* _gold, attr_t label) nogil: + cdef inline weight_t cost(const StateC* state, const void* _gold, attr_t label) noexcept nogil: gold = _gold cost = gold.push_cost s0 = state.S(0) @@ -525,7 +525,7 @@ cdef class Break: * Arcs between S and B[1] """ @staticmethod - cdef bint is_valid(const StateC* st, attr_t label) nogil: + cdef bint is_valid(const StateC* st, attr_t label) noexcept nogil: if st.buffer_length() < 2: return False elif st.B(1) != st.B(0) + 1: @@ -538,11 +538,11 @@ cdef class Break: return True @staticmethod - cdef int transition(StateC* st, attr_t label) nogil: + cdef int transition(StateC* st, attr_t label) noexcept nogil: st.set_sent_start(st.B(1), 1) @staticmethod - cdef weight_t cost(const StateC* state, const void* _gold, attr_t label) nogil: + cdef weight_t cost(const StateC* state, const void* _gold, attr_t label) noexcept nogil: gold = _gold cdef int b0 = state.B(0) cdef int cost = 0 @@ -785,7 +785,7 @@ cdef class ArcEager(TransitionSystem): else: return False - cdef int set_valid(self, int* output, const StateC* st) nogil: + cdef int set_valid(self, int* output, const StateC* st) noexcept nogil: cdef int[N_MOVES] is_valid is_valid[SHIFT] = Shift.is_valid(st, 0) is_valid[REDUCE] = Reduce.is_valid(st, 0) diff --git a/spacy/pipeline/_parser_internals/ner.pyx b/spacy/pipeline/_parser_internals/ner.pyx index e4312bd2f..439c97d84 100644 --- a/spacy/pipeline/_parser_internals/ner.pyx +++ b/spacy/pipeline/_parser_internals/ner.pyx @@ -110,7 +110,7 @@ cdef void update_gold_state(GoldNERStateC* gs, const StateC* state) except *: cdef do_func_t[N_MOVES] do_funcs -cdef bint _entity_is_sunk(const StateC* state, Transition* golds) nogil: +cdef bint _entity_is_sunk(const StateC* state, Transition* golds) noexcept nogil: if not state.entity_is_open(): return False @@ -347,21 +347,21 @@ cdef class BiluoPushDown(TransitionSystem): cdef class Missing: @staticmethod - cdef bint is_valid(const StateC* st, attr_t label) nogil: + cdef bint is_valid(const StateC* st, attr_t label) noexcept nogil: return False @staticmethod - cdef int transition(StateC* s, attr_t label) nogil: + cdef int transition(StateC* s, attr_t label) noexcept nogil: pass @staticmethod - cdef weight_t cost(const StateC* s, const void* _gold, attr_t label) nogil: + cdef weight_t cost(const StateC* s, const void* _gold, attr_t label) noexcept nogil: return 9000 cdef class Begin: @staticmethod - cdef bint is_valid(const StateC* st, attr_t label) nogil: + cdef bint is_valid(const StateC* st, attr_t label) noexcept nogil: cdef int preset_ent_iob = st.B_(0).ent_iob cdef attr_t preset_ent_label = st.B_(0).ent_type if st.entity_is_open(): @@ -400,13 +400,13 @@ cdef class Begin: return True @staticmethod - cdef int transition(StateC* st, attr_t label) nogil: + cdef int transition(StateC* st, attr_t label) noexcept nogil: st.open_ent(label) st.push() st.pop() @staticmethod - cdef weight_t cost(const StateC* s, const void* _gold, attr_t label) nogil: + cdef weight_t cost(const StateC* s, const void* _gold, attr_t label) noexcept nogil: gold = _gold b0 = s.B(0) cdef int cost = 0 @@ -439,7 +439,7 @@ cdef class Begin: cdef class In: @staticmethod - cdef bint is_valid(const StateC* st, attr_t label) nogil: + cdef bint is_valid(const StateC* st, attr_t label) noexcept nogil: if not st.entity_is_open(): return False if st.buffer_length() < 2: @@ -475,12 +475,12 @@ cdef class In: return True @staticmethod - cdef int transition(StateC* st, attr_t label) nogil: + cdef int transition(StateC* st, attr_t label) noexcept nogil: st.push() st.pop() @staticmethod - cdef weight_t cost(const StateC* s, const void* _gold, attr_t label) nogil: + cdef weight_t cost(const StateC* s, const void* _gold, attr_t label) noexcept nogil: gold = _gold cdef int next_act = gold.ner[s.B(1)].move if s.B(1) >= 0 else OUT cdef int g_act = gold.ner[s.B(0)].move @@ -510,7 +510,7 @@ cdef class In: cdef class Last: @staticmethod - cdef bint is_valid(const StateC* st, attr_t label) nogil: + cdef bint is_valid(const StateC* st, attr_t label) noexcept nogil: cdef int preset_ent_iob = st.B_(0).ent_iob cdef attr_t preset_ent_label = st.B_(0).ent_type if label == 0: @@ -535,13 +535,13 @@ cdef class Last: return True @staticmethod - cdef int transition(StateC* st, attr_t label) nogil: + cdef int transition(StateC* st, attr_t label) noexcept nogil: st.close_ent() st.push() st.pop() @staticmethod - cdef weight_t cost(const StateC* s, const void* _gold, attr_t label) nogil: + cdef weight_t cost(const StateC* s, const void* _gold, attr_t label) noexcept nogil: gold = _gold b0 = s.B(0) ent_start = s.E(0) @@ -581,7 +581,7 @@ cdef class Last: cdef class Unit: @staticmethod - cdef bint is_valid(const StateC* st, attr_t label) nogil: + cdef bint is_valid(const StateC* st, attr_t label) noexcept nogil: cdef int preset_ent_iob = st.B_(0).ent_iob cdef attr_t preset_ent_label = st.B_(0).ent_type if label == 0: @@ -609,14 +609,14 @@ cdef class Unit: return True @staticmethod - cdef int transition(StateC* st, attr_t label) nogil: + cdef int transition(StateC* st, attr_t label) noexcept nogil: st.open_ent(label) st.close_ent() st.push() st.pop() @staticmethod - cdef weight_t cost(const StateC* s, const void* _gold, attr_t label) nogil: + cdef weight_t cost(const StateC* s, const void* _gold, attr_t label) noexcept nogil: gold = _gold cdef int g_act = gold.ner[s.B(0)].move cdef attr_t g_tag = gold.ner[s.B(0)].label @@ -646,7 +646,7 @@ cdef class Unit: cdef class Out: @staticmethod - cdef bint is_valid(const StateC* st, attr_t label) nogil: + cdef bint is_valid(const StateC* st, attr_t label) noexcept nogil: cdef int preset_ent_iob = st.B_(0).ent_iob if st.entity_is_open(): return False @@ -658,12 +658,12 @@ cdef class Out: return True @staticmethod - cdef int transition(StateC* st, attr_t label) nogil: + cdef int transition(StateC* st, attr_t label) noexcept nogil: st.push() st.pop() @staticmethod - cdef weight_t cost(const StateC* s, const void* _gold, attr_t label) nogil: + cdef weight_t cost(const StateC* s, const void* _gold, attr_t label) noexcept nogil: gold = _gold cdef int g_act = gold.ner[s.B(0)].move cdef weight_t cost = 0 diff --git a/spacy/pipeline/_parser_internals/nonproj.pyx b/spacy/pipeline/_parser_internals/nonproj.pyx index 9e3a21b81..016b8b487 100644 --- a/spacy/pipeline/_parser_internals/nonproj.pyx +++ b/spacy/pipeline/_parser_internals/nonproj.pyx @@ -94,7 +94,7 @@ cdef bool _has_head_as_ancestor(int tokenid, int head, const vector[int]& heads) return False -cdef string heads_to_string(const vector[int]& heads) nogil: +cdef string heads_to_string(const vector[int]& heads) noexcept nogil: cdef vector[int].const_iterator citer cdef string cycle_str diff --git a/spacy/pipeline/_parser_internals/transition_system.pxd b/spacy/pipeline/_parser_internals/transition_system.pxd index 04cd10d88..74fd48961 100644 --- a/spacy/pipeline/_parser_internals/transition_system.pxd +++ b/spacy/pipeline/_parser_internals/transition_system.pxd @@ -15,22 +15,22 @@ cdef struct Transition: weight_t score - bint (*is_valid)(const StateC* state, attr_t label) nogil - weight_t (*get_cost)(const StateC* state, const void* gold, attr_t label) nogil - int (*do)(StateC* state, attr_t label) nogil + bint (*is_valid)(const StateC* state, attr_t label) noexcept nogil + weight_t (*get_cost)(const StateC* state, const void* gold, attr_t label) noexcept nogil + int (*do)(StateC* state, attr_t label) noexcept nogil ctypedef weight_t (*get_cost_func_t)( const StateC* state, const void* gold, attr_tlabel -) nogil +) noexcept nogil ctypedef weight_t (*move_cost_func_t)( const StateC* state, const void* gold -) nogil +) noexcept nogil ctypedef weight_t (*label_cost_func_t)( const StateC* state, const void* gold, attr_t label -) nogil +) noexcept nogil -ctypedef int (*do_func_t)(StateC* state, attr_t label) nogil +ctypedef int (*do_func_t)(StateC* state, attr_t label) noexcept nogil ctypedef void* (*init_state_t)(Pool mem, int length, void* tokens) except NULL @@ -53,7 +53,7 @@ cdef class TransitionSystem: cdef Transition init_transition(self, int clas, int move, attr_t label) except * - cdef int set_valid(self, int* output, const StateC* st) nogil + cdef int set_valid(self, int* output, const StateC* st) noexcept nogil cdef int set_costs(self, int* is_valid, weight_t* costs, const StateC* state, gold) except -1 diff --git a/spacy/pipeline/_parser_internals/transition_system.pyx b/spacy/pipeline/_parser_internals/transition_system.pyx index e035053b3..d7cf95c8c 100644 --- a/spacy/pipeline/_parser_internals/transition_system.pyx +++ b/spacy/pipeline/_parser_internals/transition_system.pyx @@ -149,7 +149,7 @@ cdef class TransitionSystem: action = self.lookup_transition(move_name) return action.is_valid(stcls.c, action.label) - cdef int set_valid(self, int* is_valid, const StateC* st) nogil: + cdef int set_valid(self, int* is_valid, const StateC* st) noexcept nogil: cdef int i for i in range(self.n_moves): is_valid[i] = self.c[i].is_valid(st, self.c[i].label) diff --git a/spacy/pipeline/transition_parser.pxd b/spacy/pipeline/transition_parser.pxd index 7ddb91e01..62c2bfb56 100644 --- a/spacy/pipeline/transition_parser.pxd +++ b/spacy/pipeline/transition_parser.pxd @@ -19,7 +19,7 @@ cdef class Parser(TrainablePipe): StateC** states, WeightsC weights, SizesC sizes - ) nogil + ) noexcept nogil cdef void c_transition_batch( self, @@ -27,4 +27,4 @@ cdef class Parser(TrainablePipe): const float* scores, int nr_class, int batch_size - ) nogil + ) noexcept nogil diff --git a/spacy/pipeline/transition_parser.pyx b/spacy/pipeline/transition_parser.pyx index 9a278fc13..24a5bc1d9 100644 --- a/spacy/pipeline/transition_parser.pyx +++ b/spacy/pipeline/transition_parser.pyx @@ -316,7 +316,7 @@ cdef class Parser(TrainablePipe): cdef void _parseC( self, CBlas cblas, StateC** states, WeightsC weights, SizesC sizes - ) nogil: + ) noexcept nogil: cdef int i cdef vector[StateC*] unfinished cdef ActivationsC activations = alloc_activations(sizes) @@ -359,7 +359,7 @@ cdef class Parser(TrainablePipe): const float* scores, int nr_class, int batch_size - ) nogil: + ) noexcept nogil: # n_moves should not be zero at this point, but make sure to avoid zero-length mem alloc with gil: assert self.moves.n_moves > 0, Errors.E924.format(name=self.name) diff --git a/spacy/tokenizer.pyx b/spacy/tokenizer.pyx index 6ca170dd4..77718a75b 100644 --- a/spacy/tokenizer.pyx +++ b/spacy/tokenizer.pyx @@ -867,11 +867,11 @@ cdef extern from "" namespace "std" nogil: bint (*)(SpanC, SpanC)) -cdef bint len_start_cmp(SpanC a, SpanC b) nogil: +cdef bint len_start_cmp(SpanC a, SpanC b) noexcept nogil: if a.end - a.start == b.end - b.start: return b.start < a.start return a.end - a.start < b.end - b.start -cdef bint start_cmp(SpanC a, SpanC b) nogil: +cdef bint start_cmp(SpanC a, SpanC b) noexcept nogil: return a.start < b.start diff --git a/spacy/tokens/doc.pxd b/spacy/tokens/doc.pxd index d9719609c..454166056 100644 --- a/spacy/tokens/doc.pxd +++ b/spacy/tokens/doc.pxd @@ -7,8 +7,8 @@ from ..typedefs cimport attr_t from ..vocab cimport Vocab -cdef attr_t get_token_attr(const TokenC* token, attr_id_t feat_name) nogil -cdef attr_t get_token_attr_for_matcher(const TokenC* token, attr_id_t feat_name) nogil +cdef attr_t get_token_attr(const TokenC* token, attr_id_t feat_name) noexcept nogil +cdef attr_t get_token_attr_for_matcher(const TokenC* token, attr_id_t feat_name) noexcept nogil ctypedef const LexemeC* const_Lexeme_ptr diff --git a/spacy/tokens/doc.pyx b/spacy/tokens/doc.pyx index 4d6249569..0a90a67d1 100644 --- a/spacy/tokens/doc.pyx +++ b/spacy/tokens/doc.pyx @@ -71,7 +71,7 @@ cdef int bounds_check(int i, int length, int padding) except -1: raise IndexError(Errors.E026.format(i=i, length=length)) -cdef attr_t get_token_attr(const TokenC* token, attr_id_t feat_name) nogil: +cdef attr_t get_token_attr(const TokenC* token, attr_id_t feat_name) noexcept nogil: if feat_name == LEMMA: return token.lemma elif feat_name == NORM: @@ -106,7 +106,7 @@ cdef attr_t get_token_attr(const TokenC* token, attr_id_t feat_name) nogil: return Lexeme.get_struct_attr(token.lex, feat_name) -cdef attr_t get_token_attr_for_matcher(const TokenC* token, attr_id_t feat_name) nogil: +cdef attr_t get_token_attr_for_matcher(const TokenC* token, attr_id_t feat_name) noexcept nogil: if feat_name == SENT_START: if token.sent_start == 1: return True diff --git a/spacy/tokens/token.pxd b/spacy/tokens/token.pxd index f4e4611df..3252fcdeb 100644 --- a/spacy/tokens/token.pxd +++ b/spacy/tokens/token.pxd @@ -33,7 +33,7 @@ cdef class Token: cpdef bint check_flag(self, attr_id_t flag_id) except -1 @staticmethod - cdef inline attr_t get_struct_attr(const TokenC* token, attr_id_t feat_name) nogil: + cdef inline attr_t get_struct_attr(const TokenC* token, attr_id_t feat_name) noexcept nogil: if feat_name < (sizeof(flags_t) * 8): return Lexeme.c_check_flag(token.lex, feat_name) elif feat_name == LEMMA: @@ -70,7 +70,7 @@ cdef class Token: @staticmethod cdef inline attr_t set_struct_attr(TokenC* token, attr_id_t feat_name, - attr_t value) nogil: + attr_t value) noexcept nogil: if feat_name == LEMMA: token.lemma = value elif feat_name == NORM: @@ -99,9 +99,9 @@ cdef class Token: token.sent_start = value @staticmethod - cdef inline int missing_dep(const TokenC* token) nogil: + cdef inline int missing_dep(const TokenC* token) noexcept nogil: return token.dep == MISSING_DEP @staticmethod - cdef inline int missing_head(const TokenC* token) nogil: + cdef inline int missing_head(const TokenC* token) noexcept nogil: return Token.missing_dep(token)