# Path: tlfp/tools/common.py
# def log_print(file=None, only_log=False):
#         def __init__(self, file):
#         def write(self, message):
#         def __getattr__(self, attr):
# def open_csv(dirpath, filename, delimiter=";"):
# def open_json(dirpath, filename=None):
# def download_daily(url_or_collecter, filename, output_directory):
# def print_json(dico, filename=None):
# def debug_file(data, filename):
# def format_date(d):
# def format_display_date(d):
# def real_lower(text):
# def clean_accents(text):
# def clean_text_for_diff(text):
# def compute_approx_similarity(text1, text2):
# def compute_similarity(text1, text2):
# def compute_similarity_by_articles(text1, text2):
# def identify_room(url_or_institution, legislature):
# def national_assembly_text_legislature(url_text):
# def personalize_link(link, obj, urlapi):
# def slug_groupe(g):
#     def __init__(self, sourcedir, load_parls=False):
#     def get_procedure(self):
#     def get_parlementaires(self):
#     def get_parlementaire(self, urlapi, slug):
#     def get_groupes(self):
#     def get_historique_groupes_senat(self):
#     def get_senateur_groupe(self, slug, object_date, urlapi):
#     def add_groupe(self, groupes, gpe, urlapi):
# def get_text_id(texte_url):
#     class Logger:
# class Context(object):


import os, sys, glob, re
from tlfp.tools.common import strip_text, compute_similarity_by_articles, open_json, print_json, \
    clean_text_for_diff, datize, clean_statuses
    cc_step = [step for step in dos['steps'] if step.get('stage') == 'constitutionnalité']
    if cc_step:
        return cc_step[0].get('decision') == 'partiellement conforme'


def find_amendements(path):
    for amdts_file in glob.glob(os.path.join(path, '**/amendements_*'), recursive=True):
        amendements = open_json(amdts_file)
        for subject in amendements.get('sujets', {}).values():
            for amdt in subject.get('amendements', []):
                yield amdt, amdts_file


def read_alineas(art):
    return [art['alineas'][al] for al in sorted(art['alineas'].keys())]


def read_text(step):
    articles = step['texte.json']['articles']
    for art in articles:
        # yield art['titre']
        for al in read_alineas(art):
            yield al


def step_word_count(step):
    return count_words('\n'.join(clean_statuses(al) for al in read_text(step)))


def step_text_length(step):

# Path: tlfp/tools/common.py
# def log_print(file=None, only_log=False):
#         def __init__(self, file):
#         def write(self, message):
#         def __getattr__(self, attr):
# def open_csv(dirpath, filename, delimiter=";"):
# def open_json(dirpath, filename=None):
# def download_daily(url_or_collecter, filename, output_directory):
# def print_json(dico, filename=None):
# def debug_file(data, filename):
# def format_date(d):
# def format_display_date(d):
# def real_lower(text):
# def clean_accents(text):
# def clean_text_for_diff(text):
# def compute_approx_similarity(text1, text2):
# def compute_similarity(text1, text2):
# def compute_similarity_by_articles(text1, text2):
# def identify_room(url_or_institution, legislature):
# def national_assembly_text_legislature(url_text):
# def personalize_link(link, obj, urlapi):
# def slug_groupe(g):
#     def __init__(self, sourcedir, load_parls=False):
#     def get_procedure(self):
#     def get_parlementaires(self):
#     def get_parlementaire(self, urlapi, slug):
#     def get_groupes(self):
#     def get_historique_groupes_senat(self):
#     def get_senateur_groupe(self, slug, object_date, urlapi):
#     def add_groupe(self, groupes, gpe, urlapi):
# def get_text_id(texte_url):
#     class Logger:
# class Context(object):


# Path: tlfp/tools/compute_stats.py
import os, sys, glob, re
from tlfp.tools.common import strip_text, compute_similarity_by_articles, open_json, print_json, \
    clean_text_for_diff, datize, clean_statuses

    cc_step = [step for step in dos['steps'] if step.get('stage') == 'constitutionnalité']
    if cc_step:
        return cc_step[0].get('decision') == 'partiellement conforme'


def find_amendements(path):
    for amdts_file in glob.glob(os.path.join(path, '**/amendements_*'), recursive=True):
        amendements = open_json(amdts_file)
        for subject in amendements.get('sujets', {}).values():
            for amdt in subject.get('amendements', []):
                yield amdt, amdts_file


def read_alineas(art):
    return [art['alineas'][al] for al in sorted(art['alineas'].keys())]


def read_text(step):
    articles = step['texte.json']['articles']
    for art in articles:
        # yield art['titre']
        for al in read_alineas(art):
            yield al


def step_word_count(step):
    return count_words('\n'.join(clean_statuses(al) for al in read_text(step)))


def step_text_length(step):

    return len(''.join(strip_text(al) for al in read_text(step)))