Files
LifeFaq/app/services/__pycache__/metadata_processor.cpython-312.pyc

45 lines
5.4 KiB
Plaintext
Raw Normal View History

2024-12-12 19:58:26 +01:00
<EFBFBD>
2024-12-29 04:34:25 +01:00
<1B>pgN<00><00>L<00>ddlZddlZddlZddlmZmZddlmZGd<04>d<05>Zy)<06>N)<02>List<73>Dict)<01>FastAPIc<00>B<00>eZdZdZd dededefd<06>Zdedefd <09>Zd
<EFBFBD>Z d <0B>Z
y) <0A>MetadataProcessorzq
2024-12-12 19:58:26 +01:00
A class to scan Markdown files, extract front matter metadata,
and generate a structured JSON file.
2024-12-29 04:34:25 +01:00
N<> input_dir<69> output_file<6C>appc<00>4<00>||_||_ggd<01>|_y)z<>
2024-12-12 19:58:26 +01:00
Initialize the MetadataProcessor.
Args:
input_dir (str): Directory containing Markdown files.
output_file (str): Path to save the generated JSON file.
)<02>
2024-12-29 04:34:25 +01:00
categories<EFBFBD> favoritesN)rr <00>data)<04>selfrr r
s <20>F/home/hjess/PycharmProjects/LifeFaq/app/services/metadata_processor.py<70>__init__zMetadataProcessor.__init__s<00><00>#<23><04><0E>&<26><04><18>#%<25>B<EFBFBD>7<><04> <09><00> file_path<74>returnc <00>b<00>t|dd<02><03>5}|j<00>}tjgd<04><01><05>}|j |<03>|j
2024-12-12 19:58:26 +01:00
r=|j
j <00>D<00><05>cic]\}}|dj|<06><00><02>c}}ni}|cddd<07>Scc}}w#1swYyxYw)z<>
Extract front matter metadata using the 'markdown' package.
Args:
file_path (str): Path to the Markdown file.
Returns:
dict: A dictionary containing the extracted metadata.
<20>r<>utf-8<><01>encoding)<03>extra<72>nl2br<62>meta)<01>
2024-12-29 04:34:25 +01:00
extensions<EFBFBD> N)<08>open<65>read<61>markdown<77>Markdown<77>convert<72>Meta<74>items<6D>join)rr<00>file<6C>markdown_content<6E>md<6D>key<65>valuers r<00>_extract_metadataz#MetadataProcessor._extract_metadatas<><00><00><12>)<29>S<EFBFBD>7<EFBFBD> 3<>t<EFBFBD>#<23>y<EFBFBD>y<EFBFBD>{<7B> <1C><1A>"<22>"<22>.H<>I<>B<EFBFBD> <0E>J<EFBFBD>J<EFBFBD>'<27> (<28>PR<01>w<EFBFBD>w<EFBFBD>2<EFBFBD>7<EFBFBD>7<EFBFBD>=<3D>=<3D>?<3F>K<>?<3F>Z<EFBFBD>S<EFBFBD>%<25>C<EFBFBD><13><18><18>%<25><1F>(<28>?<3F>K<>\^<5E>D<EFBFBD><17>4<> 3<><33>L<01>4<> 3<>s<00>A#B%<03>2B<08>B%<03>B%<03>%B.c <00><><00>tj|j<00>D<00>]<5D>\}}}|D<00>]<5D>}|jd<01>s<01>tjj ||<04>}|j |<05>}|s<01>J|jdj|jdd<04>tjj||j<00>jtjd<05>|jdd<04>d<07><03>|jd<08>s<01><>|dj<00>d k(s<01><>|jd
2024-12-21 02:16:29 +01:00
j|jdd<04>|jd d <0C>|jd d<0E>tjj||j<00>jtjd<05>d<0F><04><00><01><><00><01><>y)z<>
2024-12-12 19:58:26 +01:00
Recursively scan the input directory for Markdown files
and extract metadata to build the JSON structure.
2024-12-29 04:34:25 +01:00
z.mdr <00>name<6D>Unknown<77>/<2F>author)r.<00>pathr1<00>favorite<74>truer <00>imagezimages/default.jpg<70>summaryzNo description provided)r.r5<00> descriptionr2N)<0E>os<6F>walkr<00>endswithr2r&r,r<00>append<6E>get<65>relpath<74>replace<63>sep<65>lower)r<00>root<6F>_<>filesr'r<00>metadatas r<00>_process_directoryz$MetadataProcessor._process_directory0sX<00><00>
2024-12-12 19:58:26 +01:00
!<21>g<EFBFBD>g<EFBFBD>d<EFBFBD>n<EFBFBD>n<EFBFBD>5<>N<EFBFBD>D<EFBFBD>!<21>U<EFBFBD><1D><04><17>=<3D>=<3D><15>'<27> "<22><07><07> <0C> <0C>T<EFBFBD>4<EFBFBD> 8<>I<EFBFBD>#<23>5<>5<>i<EFBFBD>@<40>H<EFBFBD><1F><1C> <09> <09>,<2C>/<2F>6<>6<>$,<2C>L<EFBFBD>L<EFBFBD><16><19>$C<>$&<26>G<EFBFBD>G<EFBFBD>O<EFBFBD>O<EFBFBD>D<EFBFBD>$<24>.<2E>.<2E>$I<>$Q<>$Q<>RT<52>RX<52>RX<52>Z]<5D>$^<5E>&.<2E>l<EFBFBD>l<EFBFBD>8<EFBFBD>Y<EFBFBD>&G<>8<1A><1B>$<24><<3C><<3C>
2024-12-29 04:34:25 +01:00
<EFBFBD>3<><08><1A>8L<38>8R<38>8R<38>8T<38>X^<5E>8^<5E> <20>I<EFBFBD>I<EFBFBD>k<EFBFBD>2<>9<>9<>(0<> <0C> <0C>V<EFBFBD>Y<EFBFBD>(G<>)1<><1C><1C>g<EFBFBD>?S<>)T<>/7<>|<7C>|<7C>I<EFBFBD>G`<60>/a<>(*<2A><07><07><0F><0F><04>d<EFBFBD>n<EFBFBD>n<EFBFBD>(M<>(U<>(U<>VX<56>V\<5C>V\<5C>^a<>(b<> ;<1E><1F><1E>6rc<00><00>|j<00>d|jvrg|jd<i}|jdD]/}t|t<00>s<01>|j dd<03>}||vs<01>+|||<<00>1t |j <00>d<04><00><05>|jd<t|jdd<07><08>5}tj|j|d d
2024-12-21 02:16:29 +01:00
<EFBFBD> <0B>d d d <0C>td |j<00><00><02>y #1swY<00>"xYw)z<>
Generate the JSON structure, deduplicate and sort categories by 'path',
then save it to the output file.
2024-12-29 04:34:25 +01:00
r r2<00>unknownc<00>&<00>|jdd<02>S)Nr2rG)r<)<01>xs r<00><lambda>z1MetadataProcessor.generate_json.<locals>.<lambda>bs<00><00>A<EFBFBD>E<EFBFBD>E<EFBFBD>6<EFBFBD>9<EFBFBD>6r)r*<00>wrr<00>F)<02>indent<6E> ensure_asciiNzGenerated JSON saved to ) rEr<00>
isinstance<EFBFBD>dictr<<00>sorted<65>valuesrr <00>json<6F>dump<6D>print)r<00>unique_categories<65>categoryr2<00> json_files r<00> generate_jsonzMetadataProcessor.generate_jsonLs<><00><00>
2024-12-21 02:16:29 +01:00
<0A><1F><1F>!<21> <18>t<EFBFBD>y<EFBFBD>y<EFBFBD> (<28>&(<28>D<EFBFBD>I<EFBFBD>I<EFBFBD>l<EFBFBD> #<23> <20><19><1C> <09> <09>,<2C>/<2F>H<EFBFBD><19>8<EFBFBD>T<EFBFBD>+<2B><1F>|<7C>|<7C>V<EFBFBD>Y<EFBFBD>8<><04><17>0<>0<>.6<EFBFBD>%<25>d<EFBFBD>+<2B> 0<>#)<29> <1D> $<24> $<24> &<26>6<>#
2024-12-29 04:34:25 +01:00
<EFBFBD><04> <09> <09>,<2C><1F> <12>4<EFBFBD>#<23>#<23>S<EFBFBD>W<EFBFBD> ><3E>)<29> <10>I<EFBFBD>I<EFBFBD>t<EFBFBD>y<EFBFBD>y<EFBFBD>)<29>a<EFBFBD><05> O<>?<3F> <0E>)<29>$<24>*:<3A>*:<3A>);<3B><<3C>><3E>?<3F> ><3E>s <00>2$C7<03>7D)N) <0B>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__doc__<5F>strrrrr,rErY<00>rrrr s><00><00><08>
2024-12-12 19:58:26 +01:00
8<>#<23>
2024-12-29 04:34:25 +01:00
8<>C<EFBFBD>
8<>G<EFBFBD>
8<><18>3<EFBFBD><18>4<EFBFBD><18>*<1F>8?rr) r8r!rS<00>typingrr<00>fastapirrr_rr<00><module>rbs <00><01> <09><0F> <0B><1D><1B>`?<3F>`?r