<commit_before>from sys import stderr
from API_operaciones.mysql_connection import mysql2 as mysql
from API_operaciones.mysql_connection import app
import MySQLdb

def print_err(*args, **kwargs):
    print(*args, file=stderr, **kwargs)

class bd_descripcion:
  """ Esta clase tiene metodos para revisar 
  que los datos requeridos si existan """
  tablas = []
  descripcionTablas = {}
  idPorTabla = {}
  
  """ Constructor"""
  def __init__(self):
    db_cursor = mysql.cursor()
    # Obtenemos todos los nombres de las tablas
    querry = "SHOW TABLES"
    db_cursor.execute(querry)
    tablasDB = db_cursor.fetchall()
    # Por cada tabla
    for tabla in tablasDB:
      self.insertarTabla(tabla[0])
      # Obtenemos la llave primaria
      querry = "SELECT k.column_name \
                FROM information_schema.table_constraints t \
                JOIN information_schema.key_column_usage k \
                USING(constraint_name,table_schema,table_name) \
                WHERE t.constraint_type='PRIMARY KEY' \
                AND t.table_schema=%s \
                AND t.table_name=%s"
      db_cursor.execute(querry, (app.config['MYSQL_DB'], tabla[0],))
      llave = db_cursor.fetchone()
      self.insertarIdPrincipalTabla(tabla[0], llave[0])
      # Obtenemos los nombres de las columnas 
      querry = "SELECT `COLUMN_NAME`\
                FROM `INFORMATION_SCHEMA`.`COLUMNS`\
                WHERE `TABLE_SCHEMA`='%s'\
                AND `TABLE_NAME`='%s'"
      db_cursor.execute(querry, (app.config['MYSQL_DB'], tabla[0]))
      columnas = db_cursor.fetchall()
      for columna in columnas:
        self.insertarDescripcion(tabla[0], columna[0])
  
  """ Permite insertar el nombre de una tabla"""
  def insertarTabla(self, nuevasTablas):
    if isinstance(nuevasTablas,list):
      self.tablas.extend(nuevasTablas)
    elif isinstance(nuevasTablas, str):
      self.tablas.append(nuevasTablas)
    else:
      print_err("ERROR parametro nuevasTablas invalido")
    
  
  """ Permite insertar los campos de una tabla"""
  def insertarDescripcion(self, nombreBD, elemento):
    if nombreBD in self.tablas:
      if isinstance(elemento, str):
        if nombreBD not in self.descripcionTablas:
          self.descripcionTablas[nombreBD] = [] 
        self.descripcionTablas[nombreBD].append(elemento)
      else:<commit_msg>python bug<commit_after>from sys import stderr
from API_operaciones.mysql_connection import mysql2 as mysql
from API_operaciones.mysql_connection import app
import MySQLdb

def print_err(*args, **kwargs):
    print(*args, file=stderr, **kwargs)

class bd_descripcion:
  """ Esta clase tiene metodos para revisar 
  que los datos requeridos si existan """
  tablas = []
  descripcionTablas = {}
  idPorTabla = {}
  
  """ Constructor"""
  def __init__(self):
    db_cursor = mysql.cursor()
    # Obtenemos todos los nombres de las tablas
    querry = "SHOW TABLES"
    db_cursor.execute(querry)
    tablasDB = db_cursor.fetchall()
    # Por cada tabla
    for tabla in tablasDB:
      self.insertarTabla(tabla[0])
      # Obtenemos la llave primaria
      querry = "SELECT k.column_name \
                FROM information_schema.table_constraints t \
                JOIN information_schema.key_column_usage k \
                USING(constraint_name,table_schema,table_name) \
                WHERE t.constraint_type='PRIMARY KEY' \
                AND t.table_schema=%s \
                AND t.table_name=%s"
      db_cursor.execute(querry, (app.config['MYSQL_DB'], tabla[0],))
      llave = db_cursor.fetchone()
      self.insertarIdPrincipalTabla(tabla[0], llave[0])
      # Obtenemos los nombres de las columnas 
      querry = "SELECT `COLUMN_NAME`\
                FROM `INFORMATION_SCHEMA`.`COLUMNS`\
                WHERE `TABLE_SCHEMA`=%s\
                AND `TABLE_NAME`=%s"
      db_cursor.execute(querry, (app.config['MYSQL_DB'], tabla[0]))
      columnas = db_cursor.fetchall()
      for columna in columnas:
        self.insertarDescripcion(tabla[0], columna[0])
  
  """ Permite insertar el nombre de una tabla"""
  def insertarTabla(self, nuevasTablas):
    if isinstance(nuevasTablas,list):
      self.tablas.extend(nuevasTablas)
    elif isinstance(nuevasTablas, str):
      self.tablas.append(nuevasTablas)
    else:
      print_err("ERROR parametro nuevasTablas invalido")
    
  
  """ Permite insertar los campos de una tabla"""
  def insertarDescripcion(self, nombreBD, elemento):
    if nombreBD in self.tablas:
      if isinstance(elemento, str):
        if nombreBD not in self.descripcionTablas:
          self.descripcionTablas[nombreBD] = [] 
        self.descripcionTablas[nombreBD].append(elemento)
      else:
{'fraction_non_alphanumeric': 0.10023459159735551, 'fraction_numerical': 0.0034122414160801876, 'mean_word_length': 2.9148580968280466, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3092959', 'n_tokens_mistral': 1566, 'n_tokens_neox': 1573, 'n_words': 334}