Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
nopaque
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Monitor
Service Desk
Analyze
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Admin message
Looking for advice? Join the
Matrix channel for GitLab users in Bielefeld
!
Show more breadcrumbs
SFB 1288 - INF
nopaque
Commits
04575b78
Commit
04575b78
authored
1 year ago
by
Patrick Jentsch
Browse files
Options
Downloads
Patches
Plain Diff
Codestyle enhancements
parent
2951fc69
No related branches found
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
app/corpora/cqi_over_sio/__init__.py
+18
-13
18 additions, 13 deletions
app/corpora/cqi_over_sio/__init__.py
app/corpora/cqi_over_sio/utils.py
+10
-11
10 additions, 11 deletions
app/corpora/cqi_over_sio/utils.py
with
28 additions
and
24 deletions
app/corpora/cqi_over_sio/__init__.py
+
18
−
13
View file @
04575b78
...
@@ -6,7 +6,7 @@ from flask_login import current_user
...
@@ -6,7 +6,7 @@ from flask_login import current_user
from
flask_socketio
import
Namespace
from
flask_socketio
import
Namespace
from
inspect
import
signature
from
inspect
import
signature
from
threading
import
Lock
from
threading
import
Lock
from
typing
import
Callable
,
Dict
,
List
from
typing
import
Callable
,
Dict
,
List
,
Optional
from
app
import
db
,
hashids
,
socketio
from
app
import
db
,
hashids
,
socketio
from
app.decorators
import
socketio_login_required
from
app.decorators
import
socketio_login_required
from
app.models
import
Corpus
,
CorpusStatus
from
app.models
import
Corpus
,
CorpusStatus
...
@@ -92,8 +92,8 @@ class CQiNamespace(Namespace):
...
@@ -92,8 +92,8 @@ class CQiNamespace(Namespace):
@socketio_login_required
@socketio_login_required
def
on_init
(
self
,
db_corpus_hashid
:
str
):
def
on_init
(
self
,
db_corpus_hashid
:
str
):
db_corpus_id
=
hashids
.
decode
(
db_corpus_hashid
)
db_corpus_id
:
int
=
hashids
.
decode
(
db_corpus_hashid
)
db_corpus
=
Corpus
.
query
.
get
(
db_corpus_id
)
db_corpus
:
Optional
[
Corpus
]
=
Corpus
.
query
.
get
(
db_corpus_id
)
if
db_corpus
is
None
:
if
db_corpus
is
None
:
return
{
'
code
'
:
404
,
'
msg
'
:
'
Not Found
'
}
return
{
'
code
'
:
404
,
'
msg
'
:
'
Not Found
'
}
if
not
(
db_corpus
.
user
==
current_user
if
not
(
db_corpus
.
user
==
current_user
...
@@ -112,7 +112,7 @@ class CQiNamespace(Namespace):
...
@@ -112,7 +112,7 @@ class CQiNamespace(Namespace):
db
.
session
.
commit
()
db
.
session
.
commit
()
db_corpus
.
num_analysis_sessions
=
Corpus
.
num_analysis_sessions
+
1
db_corpus
.
num_analysis_sessions
=
Corpus
.
num_analysis_sessions
+
1
db
.
session
.
commit
()
db
.
session
.
commit
()
retry_counter
=
20
retry_counter
:
int
=
20
while
db_corpus
.
status
!=
CorpusStatus
.
RUNNING_ANALYSIS_SESSION
:
while
db_corpus
.
status
!=
CorpusStatus
.
RUNNING_ANALYSIS_SESSION
:
if
retry_counter
==
0
:
if
retry_counter
==
0
:
db_corpus
.
num_analysis_sessions
=
Corpus
.
num_analysis_sessions
-
1
db_corpus
.
num_analysis_sessions
=
Corpus
.
num_analysis_sessions
-
1
...
@@ -121,11 +121,15 @@ class CQiNamespace(Namespace):
...
@@ -121,11 +121,15 @@ class CQiNamespace(Namespace):
socketio
.
sleep
(
3
)
socketio
.
sleep
(
3
)
retry_counter
-=
1
retry_counter
-=
1
db
.
session
.
refresh
(
db_corpus
)
db
.
session
.
refresh
(
db_corpus
)
cqi_client
=
CQiClient
(
f
'
cqpserver_
{
db_corpus_id
}
'
,
timeout
=
float
(
'
inf
'
))
cqi_client
:
CQiClient
=
CQiClient
(
session
[
'
cqi_over_sio
'
]
=
{}
f
'
cqpserver_
{
db_corpus_id
}
'
,
session
[
'
cqi_over_sio
'
][
'
cqi_client
'
]
=
cqi_client
timeout
=
float
(
'
inf
'
)
session
[
'
cqi_over_sio
'
][
'
cqi_client_lock
'
]
=
Lock
()
)
session
[
'
cqi_over_sio
'
][
'
db_corpus_id
'
]
=
db_corpus_id
session
[
'
cqi_over_sio
'
]
=
{
'
cqi_client
'
:
cqi_client
,
'
cqi_client_lock
'
:
Lock
(),
'
db_corpus_id
'
:
db_corpus_id
}
return
{
'
code
'
:
200
,
'
msg
'
:
'
OK
'
}
return
{
'
code
'
:
200
,
'
msg
'
:
'
OK
'
}
@socketio_login_required
@socketio_login_required
...
@@ -193,7 +197,8 @@ class CQiNamespace(Namespace):
...
@@ -193,7 +197,8 @@ class CQiNamespace(Namespace):
except
(
BrokenPipeError
,
CQiException
):
except
(
BrokenPipeError
,
CQiException
):
pass
pass
cqi_client_lock
.
release
()
cqi_client_lock
.
release
()
db_corpus
=
Corpus
.
query
.
get
(
db_corpus_id
)
db_corpus
:
Optional
[
Corpus
]
=
Corpus
.
query
.
get
(
db_corpus_id
)
if
db_corpus
is
not
None
:
if
db_corpus
is
None
:
db_corpus
.
num_analysis_sessions
=
Corpus
.
num_analysis_sessions
-
1
return
db
.
session
.
commit
()
db_corpus
.
num_analysis_sessions
=
Corpus
.
num_analysis_sessions
-
1
db
.
session
.
commit
()
This diff is collapsed.
Click to expand it.
app/corpora/cqi_over_sio/utils.py
+
10
−
11
View file @
04575b78
from
cqi.models.corpora
import
Corpus
from
cqi.models.corpora
import
Corpus
as
CQiCorpus
from
cqi.models.subcorpora
import
Subcorpus
from
cqi.models.subcorpora
import
Subcorpus
as
CQiSubcorpus
from
typing
import
Dict
,
List
from
typing
import
Dict
,
List
from
app.models
import
Corpus
def
lookups_by_cpos
(
corpus
:
Corpus
,
cpos_list
:
List
[
int
])
->
Dict
:
def
lookups_by_cpos
(
corpus
:
CQi
Corpus
,
cpos_list
:
List
[
int
])
->
Dict
:
lookups
=
{}
lookups
=
{}
lookups
[
'
cpos_lookup
'
]
=
{
cpos
:
{}
for
cpos
in
cpos_list
}
lookups
[
'
cpos_lookup
'
]
=
{
cpos
:
{}
for
cpos
in
cpos_list
}
for
attr
in
corpus
.
positional_attributes
.
list
():
for
attr
in
corpus
.
positional_attributes
.
list
():
cpos_attr_values
=
attr
.
values_by_cpos
(
cpos_list
)
cpos_attr_values
:
List
[
str
]
=
attr
.
values_by_cpos
(
cpos_list
)
for
i
,
cpos
in
enumerate
(
cpos_list
):
for
i
,
cpos
in
enumerate
(
cpos_list
):
lookups
[
'
cpos_lookup
'
][
cpos
][
attr
.
attrs
[
'
name
'
]]
=
\
lookups
[
'
cpos_lookup
'
][
cpos
][
attr
.
attrs
[
'
name
'
]]
=
\
cpos_attr_values
[
i
]
cpos_attr_values
[
i
]
for
attr
in
corpus
.
structural_attributes
.
list
():
for
attr
in
corpus
.
structural_attributes
.
list
():
# We only want to iterate over non subattributes, identifiable by
# We only want to iterate over non subattributes, identifiable by
# attr.
attrs['
has_values
']
== False
# attr.has_values == False
if
attr
.
attrs
[
'
has_values
'
]
:
if
attr
.
has_values
:
continue
continue
cpos_attr_ids
=
attr
.
ids_by_cpos
(
cpos_list
)
cpos_attr_ids
:
List
[
int
]
=
attr
.
ids_by_cpos
(
cpos_list
)
for
i
,
cpos
in
enumerate
(
cpos_list
):
for
i
,
cpos
in
enumerate
(
cpos_list
):
if
cpos_attr_ids
[
i
]
==
-
1
:
if
cpos_attr_ids
[
i
]
==
-
1
:
continue
continue
...
@@ -28,7 +27,7 @@ def lookups_by_cpos(corpus: Corpus, cpos_list: List[int]) -> Dict:
...
@@ -28,7 +27,7 @@ def lookups_by_cpos(corpus: Corpus, cpos_list: List[int]) -> Dict:
subattrs
=
corpus
.
structural_attributes
.
list
(
filters
=
{
'
part_of
'
:
attr
})
subattrs
=
corpus
.
structural_attributes
.
list
(
filters
=
{
'
part_of
'
:
attr
})
if
not
subattrs
:
if
not
subattrs
:
continue
continue
lookup_name
=
f
'
{
attr
.
attrs
[
"
name
"
]
}
_lookup
'
lookup_name
:
str
=
f
'
{
attr
.
attrs
[
"
name
"
]
}
_lookup
'
lookups
[
lookup_name
]
=
{}
lookups
[
lookup_name
]
=
{}
for
attr_id
in
occured_attr_ids
:
for
attr_id
in
occured_attr_ids
:
lookups
[
lookup_name
][
attr_id
]
=
{}
lookups
[
lookup_name
][
attr_id
]
=
{}
...
@@ -40,7 +39,7 @@ def lookups_by_cpos(corpus: Corpus, cpos_list: List[int]) -> Dict:
...
@@ -40,7 +39,7 @@ def lookups_by_cpos(corpus: Corpus, cpos_list: List[int]) -> Dict:
def
partial_export_subcorpus
(
def
partial_export_subcorpus
(
subcorpus
:
Subcorpus
,
subcorpus
:
CQi
Subcorpus
,
match_id_list
:
List
[
int
],
match_id_list
:
List
[
int
],
context
:
int
=
25
context
:
int
=
25
)
->
Dict
:
)
->
Dict
:
...
@@ -89,7 +88,7 @@ def partial_export_subcorpus(
...
@@ -89,7 +88,7 @@ def partial_export_subcorpus(
def
export_subcorpus
(
def
export_subcorpus
(
subcorpus
:
Subcorpus
,
subcorpus
:
CQi
Subcorpus
,
context
:
int
=
25
,
context
:
int
=
25
,
cutoff
:
float
=
float
(
'
inf
'
),
cutoff
:
float
=
float
(
'
inf
'
),
offset
:
int
=
0
offset
:
int
=
0
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment