"""The catena libraries, in process. Every function here is the same code the command-line tool runs, and hands back the same record shapes it writes to stdout — dictionaries rather than lines of JSON. >>> import catena >>> chunks = catena.chunk_markdown(markdown, target=512) >>> chunks[0]["page"] 41 """ from ._catena import ( __version__, canonical_subject, chunk_markdown, citation_prompt, clean_record, colophon_prompt, clean_underscores, compose_subjects, count_tokens, cue_windows, Limited, fetch_cover, fetch_identifier, find_citations, fuse_hits, identify, is_shouting, isbn_from_filename, isbn_from_text, looks_like_footnote_citations, looks_like_person, merge_citation_reply, merge_colophon, needs_subject, pack_cues, parse_identifier, parse_subtitles, read_colophon, record_problems, record_severity, same_work, scrub, search_title, segment_cues, series_of, shelve, split_collection, suggest_author, title_case, title_in_author, valid_isbn, ) __all__ = [ "__version__", "Limited", "canonical_subject", "chunk_markdown", "citation_prompt", "clean_record", "colophon_prompt", "clean_underscores", "compose_subjects", "count_tokens", "cue_windows", "fetch_cover", "fetch_identifier", "find_citations", "fuse_hits", "identify", "is_shouting", "isbn_from_filename", "isbn_from_text", "looks_like_footnote_citations", "looks_like_person", "merge_citation_reply", "merge_colophon", "needs_subject", "pack_cues", "parse_identifier", "parse_subtitles", "read_colophon", "record_problems", "record_severity", "same_work", "scrub", "search_title", "segment_cues", "series_of", "shelve", "split_collection", "suggest_author", "title_case", "title_in_author", "valid_isbn", ]