Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
gargantext
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
humanities
gargantext
Commits
c12d928c
Commit
c12d928c
authored
Nov 18, 2014
by
Mathieu Rodic
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[FEATURE] Added CSV format support to the API
parent
f422c7cd
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
34 additions
and
9 deletions
+34
-9
api.py
gargantext_web/api.py
+33
-8
treetagger
parsing/Taggers/treetagger
+1
-1
No files found.
gargantext_web/api.py
View file @
c12d928c
...
@@ -44,6 +44,22 @@ def JsonHttpResponse(data, status=200):
...
@@ -44,6 +44,22 @@ def JsonHttpResponse(data, status=200):
Http400
=
SuspiciousOperation
Http400
=
SuspiciousOperation
Http403
=
PermissionDenied
Http403
=
PermissionDenied
import
csv
def
CsvHttpResponse
(
data
,
headers
=
None
,
status
=
200
):
response
=
HttpResponse
(
content_type
=
"text/csv"
,
status
=
status
)
writer
=
csv
.
writer
(
response
)
if
headers
:
writer
.
writerow
(
headers
)
for
row
in
data
:
writer
.
writerow
(
row
)
return
response
Http400
=
SuspiciousOperation
Http403
=
PermissionDenied
_ngrams_order_columns
=
{
_ngrams_order_columns
=
{
"frequency"
:
"-count"
,
"frequency"
:
"-count"
,
"alphabetical"
:
"terms"
"alphabetical"
:
"terms"
...
@@ -161,7 +177,6 @@ class CorpusController:
...
@@ -161,7 +177,6 @@ class CorpusController:
columns
.
append
(
"COUNT(
%
s.id) AS c
%
d "
%
(
Node
.
_meta
.
db_table
,
c
,
))
columns
.
append
(
"COUNT(
%
s.id) AS c
%
d "
%
(
Node
.
_meta
.
db_table
,
c
,
))
elif
mesured
==
"ngrams.count"
:
elif
mesured
==
"ngrams.count"
:
columns
.
append
(
"COUNT(
%
s.id) AS c
%
d "
%
(
Ngram
.
_meta
.
db_table
,
c
,
))
columns
.
append
(
"COUNT(
%
s.id) AS c
%
d "
%
(
Ngram
.
_meta
.
db_table
,
c
,
))
# return HttpResponse(query)
join_ngrams
=
True
join_ngrams
=
True
else
:
else
:
raise
ValidationError
(
'The "mesured" parameter should take one of the following values: "documents.count", "ngrams.count"'
)
raise
ValidationError
(
'The "mesured" parameter should take one of the following values: "documents.count", "ngrams.count"'
)
...
@@ -177,15 +192,19 @@ class CorpusController:
...
@@ -177,15 +192,19 @@ class CorpusController:
else
:
else
:
raise
ValidationError
(
'Unrecognized "filter[]=
%
s"'
%
(
filter
,
))
raise
ValidationError
(
'Unrecognized "filter[]=
%
s"'
%
(
filter
,
))
# query building: initializing SQL
# query building: initializing SQL
sql_0
=
_sql_cte
sql_0
=
''
sql_1
=
'
\n
SELECT '
sql_1
=
'
\n
SELECT '
sql_2
=
'
\n
FROM
%
s
\n
INNER JOIN cte ON cte."id" =
%
s.id'
%
(
Node
.
_meta
.
db_table
,
Node
.
_meta
.
db_table
,
)
sql_2
=
'
\n
FROM
%
s'
%
(
Node
.
_meta
.
db_table
,
)
sql_3
=
'
\n
WHERE ((NOT cte.id =
\'
%
d
\'
) AND (
\'
%
d
\'
= ANY(cte."path")))'
%
(
corpus
.
id
,
corpus
.
id
,
)
sql_3
=
'
\n
WHERE (
%
s.parent_id =
%
d)'
%
(
Node
.
_meta
.
db_table
,
corpus
.
id
,
)
# sql_0 = _sql_cte
# sql_1 = '\nSELECT '
# sql_2 = '\nFROM %s\nINNER JOIN cte ON cte."id" = %s.id' % (Node._meta.db_table, Node._meta.db_table, )
# sql_3 = '\nWHERE ((NOT cte.id = \'%d\') AND (\'%d\' = ANY(cte."path")))' % (corpus.id, corpus.id, )
# query building: assembling SQL
# query building: assembling SQL
sql_1
+=
", "
.
join
(
columns
)
sql_1
+=
", "
.
join
(
columns
)
sql_2
+=
"
\n
INNER JOIN
%
s ON
%
s.id =
%
s.type_id"
%
(
NodeType
.
_meta
.
db_table
,
NodeType
.
_meta
.
db_table
,
Node
.
_meta
.
db_table
,
)
sql_2
+=
"
\n
INNER JOIN
%
s ON
%
s.id =
%
s.type_id"
%
(
NodeType
.
_meta
.
db_table
,
NodeType
.
_meta
.
db_table
,
Node
.
_meta
.
db_table
,
)
if
join_ngrams
:
if
join_ngrams
:
sql_2
+=
"
\n
INNER JOIN
%
s ON
%
s.node_id =
cte.id"
%
(
Node_Ngram
.
_meta
.
db_table
,
Node_Ngram
.
_meta
.
db_table
,
)
sql_2
+=
"
\n
INNER JOIN
%
s ON
%
s.node_id =
%
s.id"
%
(
Node_Ngram
.
_meta
.
db_table
,
Node_Ngram
.
_meta
.
db_table
,
Node
.
_meta
.
db_table
,
)
sql_2
+=
"
\n
INNER JOIN
%
s ON
%
s.id =
%
s.ngram_id"
%
(
Ngram
.
_meta
.
db_table
,
Ngram
.
_meta
.
db_table
,
Node_Ngram
.
_meta
.
db_table
,
)
sql_2
+=
"
\n
INNER JOIN
%
s ON
%
s.id =
%
s.ngram_id"
%
(
Ngram
.
_meta
.
db_table
,
Ngram
.
_meta
.
db_table
,
Node_Ngram
.
_meta
.
db_table
,
)
sql_3
+=
"
\n
AND
%
s.name = 'Document'"
%
(
NodeType
.
_meta
.
db_table
,
)
sql_3
+=
"
\n
AND
%
s.name = 'Document'"
%
(
NodeType
.
_meta
.
db_table
,
)
if
conditions
:
if
conditions
:
...
@@ -200,7 +219,13 @@ class CorpusController:
...
@@ -200,7 +219,13 @@ class CorpusController:
cursor
=
connection
.
cursor
()
cursor
=
connection
.
cursor
()
cursor
.
execute
(
sql
)
cursor
.
execute
(
sql
)
# response building
# response building
return
JsonHttpResponse
({
format
=
request
.
GET
.
get
(
'format'
,
'json'
)
"list"
:
[
row
for
row
in
cursor
.
fetchall
()],
if
format
==
'json'
:
})
return
JsonHttpResponse
({
"list"
:
[
row
for
row
in
cursor
.
fetchall
()],
})
elif
format
==
'csv'
:
return
CsvHttpResponse
(
row
for
row
in
cursor
.
fetchall
())
else
:
raise
ValidationError
(
'Unrecognized "format=
%
s", should be "csv" or "json"'
%
(
format
,
))
parsing/Taggers/treetagger
View file @
c12d928c
/home/alexandre/local/logiciels/Treetagger/pythonwrapperP3/treetagger
/home/mat/projects/gargantext/old/gargantext-stable-2/shared/treetagger
\ No newline at end of file
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment