db connection and oss file count

This commit is contained in:
Marko Ferme
2022-10-19 00:01:34 +02:00
parent 8ffa85cd76
commit aefb4800c8
5 changed files with 112 additions and 52 deletions
+3
View File
@@ -3,6 +3,9 @@ __pycache__/
*.py[cod] *.py[cod]
*$py.class *$py.class
#sublime config
sftp-config.json
# C extensions # C extensions
*.so *.so
+7 -6
View File
@@ -1,4 +1,4 @@
from swagger_server import db_utils from swagger_server.utils import db_utils
from swagger_server import util from swagger_server import util
from flask import send_file from flask import send_file
@@ -27,7 +27,7 @@ def get_conllus(leta, vrste, kljucnebesede, cerifpodrocja): # noqa: E501
return ' '.join(files), 200 return ' '.join(files), 200
def get_extracted_words(leta, vrste, kljucnebesede, cerifpodrocja): # noqa: E501 def get_extracted_words(leta=None, vrste=None, kljucnebesede=None, udk=None): # noqa: E501
"""Vrne terminloške kandidate glede na """Vrne terminloške kandidate glede na
# noqa: E501 # noqa: E501
@@ -70,7 +70,7 @@ def get_files(leta, vrste, kljucnebesede, cerifpodrocja): # noqa: E501
return ' '.join(files), 200 return ' '.join(files), 200
def get_number_texts(leta, vrste, kljucnebesede, cerifpodrocja): # noqa: E501 def get_number_texts(leta=None, vrste=None, kljucnebesede=None, udk=None): # noqa: E501
"""Vrne število besedil glede na iskalne pogoje """Vrne število besedil glede na iskalne pogoje
# noqa: E501 # noqa: E501
@@ -86,9 +86,10 @@ def get_number_texts(leta, vrste, kljucnebesede, cerifpodrocja): # noqa: E501
:rtype: int :rtype: int
""" """
if not kljucnebesede: #if not kljucnebesede:
return "Manjkajo kljucne besede", 400 # return "Manjkajo kljucne besede", 400
files = db_utils.get_files_by_udc(kljucnebesede)
files = db_utils.vrni_oss_dokumente(leta, vrste, kljucnebesede, udk)
return len(files), 200 return len(files), 200
+1 -1
View File
@@ -43,7 +43,7 @@ class Job(BaseModel):
input_file = TextField(index=True, null=True) input_file = TextField(index=True, null=True)
# db.drop_tables([Job]) # TODO: After pushing this, comment it and push again db.drop_tables([Job]) # TODO: After pushing this, comment it and push again
db.create_tables([Job]) db.create_tables([Job])
+24 -24
View File
@@ -293,7 +293,7 @@ paths:
parameters: parameters:
- name: leta - name: leta
in: query in: query
required: true required: false
style: form style: form
explode: true explode: true
schema: schema:
@@ -303,25 +303,7 @@ paths:
format: int64 format: int64
- name: vrste - name: vrste
in: query in: query
required: true required: false
style: form
explode: true
schema:
type: array
items:
type: string
- name: kljucnebesede
in: query
required: true
style: form
explode: true
schema:
type: array
items:
type: string
- name: cerifpodrocja
in: query
required: true
style: form style: form
explode: true explode: true
schema: schema:
@@ -329,6 +311,24 @@ paths:
items: items:
type: integer type: integer
format: int64 format: int64
- name: kljucnebesede
in: query
required: false
style: form
explode: true
schema:
type: array
items:
type: string
- name: udk
in: query
required: false
style: form
explode: true
schema:
type: array
items:
type: string
responses: responses:
"200": "200":
description: OK description: OK
@@ -364,7 +364,8 @@ paths:
schema: schema:
type: array type: array
items: items:
type: string type: integer
format: int64
- name: kljucnebesede - name: kljucnebesede
in: query in: query
required: true required: true
@@ -374,7 +375,7 @@ paths:
type: array type: array
items: items:
type: string type: string
- name: cerifpodrocja - name: udk
in: query in: query
required: true required: true
style: form style: form
@@ -382,8 +383,7 @@ paths:
schema: schema:
type: array type: array
items: items:
type: integer type: string
format: int64
responses: responses:
"200": "200":
description: OK description: OK
+75 -19
View File
@@ -2,30 +2,86 @@ import mariadb
import os import os
import sys import sys
database_info = { database_info = {
'database': os.environ.get("MDB_DATABASE", default="true"), 'database': os.getenv("MDB_DATABASE", "oss"),
'host': os.environ.get("MDB_HOST", default="true"), 'host': os.getenv("MDB_HOST", "localhost"),
'port': os.environ.get("MDB_PORT", default="true"), 'port': int(os.getenv("PORT", 3306)) ,
'user': os.environ.get("MDB_USER", default="true"), 'user': os.getenv("MDB_USER", "root"),
'password': os.environ.get("MDB_PASSWORD", default="true"), 'password': os.getenv("MDB_PASSWORD", "root"),
} }
cur = None cur = None
# Connect to MariaDB Platform # Connect to MariaDB Platform
def get_files_by_udc(udc): def get_files_by_udc(udc):
ret = [] ret = []
try: try:
print(database_info)
conn = mariadb.connect(**database_info) conn = mariadb.connect(**database_info)
cur = conn.cursor() cur = conn.cursor()
#cur.execute(f'SELECT * from os2022_ngrams WHERE file_id = {file_id}') where_in = ','.join(['%s'] * len(udc))
print(where_in)
sql = "select distinct xml_id from metadata_udc where udk IN (%s)" % (where_in)
print(sql)
cur.execute(sql,udc)
#cur.execute(f'SELECT COUNT(*) FROM os2022_ngrams') #cur.execute(f'SELECT COUNT(*) FROM os2022_ngrams')
#ret = list(cur) ret = list(cur)
except mariadb.Error as e:
print(f"Error connecting to MariaDB Platform: {e}")
return ret
def vrni_oss_dokumente(leta, vrste, kljucnebesede, udk):
ret = []
try:
print(database_info)
conn = mariadb.connect(**database_info)
cur = conn.cursor()
sql = "select distinct xml_id from metadata"
where=""
params=[]
if (udk):
where_in_udk = ','.join(['%s'] * len(udk))
where=" udk IN (%s) " % (where_in_udk)
params=udk
if (leta):
where_in_leta = ','.join(['%s'] * len(leta))
if (where):
where=where+ " AND "
where=where + " leto IN (%s) " % (where_in_leta)
params=params+leta
if (vrste):
if (where):
where=where+ " AND "
where_in_vrste = ','.join(['%s'] * len(vrste))
where=where + " tipologija IN (%s) " % (where_in_vrste)
params=params+vrste
if (kljucnebesede):
if (where):
where=where+ " AND "
where_in_kb = ','.join(['%s'] * len(kljucnebesede))
where=where + " kljucnabeseda IN (%s) " % (where_in_kb)
params=params+kljucnebesede
if(where):
sql=sql+" where " + where
print(sql)
print(params)
cur.execute(sql,params)
ret = list(cur)
except mariadb.Error as e: except mariadb.Error as e:
print(f"Error connecting to MariaDB Platform: {e}") print(f"Error connecting to MariaDB Platform: {e}")
@@ -51,14 +107,14 @@ def get_files_by_udc(udc):
# db.connect() # db.connect()
class Ngrams_Manager: #class Ngrams_Manager:
@staticmethod #@staticmethod
def get_by_file_id(file_id): #def get_by_file_id(file_id):
try: #try:
# cur.execute(f'SELECT * from os2022_ngrams WHERE file_id = {file_id}') # cur.execute(f'SELECT * from os2022_ngrams WHERE file_id = {file_id}')
# cur.execute(f'SELECT COUNT(*) FROM os2022_ngrams') # cur.execute(f'SELECT COUNT(*) FROM os2022_ngrams')
# return list(cur) # return list(cur)
return 1 # return 1
except Exception as e: #except Exception as e:
print(e, 'EXC') #print(e, 'EXC')
return 0 #return 0