Source code for polical.TareasCSVToBD

"""
.. module:: TareasCSVtoBD
   :platform: Unix, Windows
   :synopsis: This module reads csv tasks and writes to the database

.. moduleauthor:: Luis Andrade <andr3slelouch@github.com>


"""
from polical import TareaClass
import csv
from polical import connectSQLite
from polical import configuration
from datetime import datetime
import logging

logging.basicConfig(
    filename=configuration.get_file_location("Running.log"),
    level=logging.INFO,
    format="%(asctime)s:%(levelname)s:%(message)s",
)


[docs]def load_csv_tasks_to_db(username: str, user_dict: dict): """This function loads csv tasks to the database Args: username (str): The username for the current task. user_dict (dict): User dictionary with keys to acces to trello. Raises: FileNotFoundError """ try: with open(configuration.get_file_location("calendar.csv")) as csv_file: logging.info("CSV abierto.") csv_reader = csv.reader(csv_file, delimiter=";") line_count = 0 for row in csv_reader: if line_count == 0: line_count += 1 elif len(row) > 9 and not line_count == 0: # print(len(row)) configuration.create_subject( get_subject_name_from_csv(row[9]), row[2], user_dict ) subject_id = connectSQLite.get_subject_id( get_subject_name_from_csv(row[9]) ) # print(row[0]) # Siempre se extraera la fecha aun cuando pueda tener un # formato YMDTXXX task = TareaClass.Tarea( row[1], row[2], row[3], datetime.strptime(row[7][0:8], "%Y%m%d"), subject_id, ) connectSQLite.save_user_task(task, username) # print("Las tareas nuevas se agregaron a la BD") logging.info("Las tareas nuevas se agregaron a la BD") except (FileNotFoundError): print("!FNF")
[docs]def get_subject_name_from_csv(full_subject_name): """This function gets subject name from csv Args: full_subject_name (str): Full subject name with format XXX_YYY_ZZZ Return: subject_name (str): Subject name """ full_subject_name_list = full_subject_name.split("_", 3) subject_name = full_subject_name_list[1] return subject_name