mirror of
https://github.com/explosion/spaCy.git
synced 2025-04-15 14:42:00 +03:00
Add noexcept for Cython 3
This commit is contained in:
parent
2384184710
commit
f4109a1fcf
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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]
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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 = <int*>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
|
||||
|
|
|
@ -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 = <const GoldParseStateC*>_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 = <const GoldParseStateC*>_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 = <const GoldParseStateC*>_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 = <const GoldParseStateC*>_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 = <const GoldParseStateC*>_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)
|
||||
|
|
|
@ -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 = <GoldNERStateC*>_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 = <GoldNERStateC*>_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 = <GoldNERStateC*>_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 = <GoldNERStateC*>_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 = <GoldNERStateC*>_gold
|
||||
cdef int g_act = gold.ner[s.B(0)].move
|
||||
cdef weight_t cost = 0
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -867,11 +867,11 @@ cdef extern from "<algorithm>" 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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue
Block a user