def foreignkey_discovery(путь к данным,PK)?

#python #pandas #csv #foreign-keys #primary-key

Вопрос:

Вот пример моего файла python для извлечения первичного ключа из csv-файлов:

 from os import listdir
import pandas
from itertools import chain, combinations
import pandas as pd
import numpy as np
import os
import itertools
import time
def is_subkey(newkey,keys):
#     test wheather newkey is sub set of any keys
   for key in keys:
       if set(key).issubset(newkey)  :
           return True
   return False

def primarykey_recognition(file,max_num=8):
#     file is an file object, returnd by function open()
#   doc is a pandas DF
   doc = pd.read_csv(file,sep=',')
   num = 1
   result = []
   table_length = len(doc.values)
   while num <= max_num:
       keys = list(itertools.combinations(doc.columns,num))
#         print(keys)
       for key in keys:
           if is_subkey(key,result):
#           if key belong to any sub set of keys in result ,continue
               continue
#           
           bools = np.array(doc.duplicated(subset=list(key)))
           if np.sum(bools) > 0:
#           sum(bools) means bools has duplicated lines 
               continue
           else:
               result.append(list(key))
       num  = 1
   return result

def primary_key_discovery(data_path):
   def witer(file_name):
       with open(data_path "/" file_name) as file:
           keys = primarykey_recognition(file)
           return file.name,":",keys
   return list(map(witer , (filter(lambda x :".csv" in x ,os.listdir(data_path)))))
   
print(primary_key_discovery('Data/'))
 

Я хочу передать результат этого в другую функцию o обнаружить ключ foregin, но я понятия не имею, как я могу это сделать
с помощью функции foreignkey_discovery(путь к данным,PK):
для файлов в пути к данным:
для ключа в Пк:
если столбец в файлах является подмножеством в ключе:
возвращение форгинки