Files
tolaria/__pycache__/select_demo_notes.cpython-310.pyc

84 lines
8.7 KiB
Plaintext
Raw Normal View History

o
<00><><EFBFBD>i<EFBFBD>1<00>@s<>dZddlZddlZddlZddlmZddlmZmZddl Z e<05>
<EFBFBD>dZ e<05>
<EFBFBD>dddZ gd <09>Z d
d d d d dddddddddd<13>Zdd<15>Zdd<17>Zdd<19>Zdd<1B>Zdd<1D>Zd)dd <20>Zd!d"<22>Zd#d$<24>Zd%d&<26>Zed'kr{e<17>Zeervdnd(<28>dSdS)*z<>
Select ~1000 well-connected notes from ~/Laputa for demo vault.
Build link graph, prioritize well-connected notes with good frontmatter.
<EFBFBD>N)<01>Path)<02> defaultdict<63>CounterZLaputaZ Workspacez
laputa-appz
demo-vault)<1D>essay<61> evergreen<65>note<74>projectZ
experiment<EFBFBD> procedure<72>responsibility<74>event<6E>person<6F>topic<69>quarter<65>monthZmeasure<72>target<65>goal<61>
key-result<6C>areaz monday-ideasZreadingszreadings-digestZresourceZmovieZvideoztv-showZhotelZ
restaurant<EFBFBD>yearZvitalZbuckets<74>-<00><00>*<00><00>F<00><><00>d<00>P<00>2)r r
rrrr rr rrrr rrc CsT|<00>d<01>siSz|<00>dd<03>}|d|<01>}t<02>|<02>piWSttjfy)iYSw)z/Extract YAML frontmatter from markdown content.z---
z
---
<EFBFBD>)<06>
startswith<EFBFBD>index<65>yamlZ safe_load<61>
ValueErrorZ YAMLError)<03>content<6E>endZfm_text<78>r%<00>5/Users/luca/Workspace/laputa-app/select_demo_notes.py<70>extract_frontmatter,s
  <02>r'cCs(d}dd<03>t<00>||<00>D<00>}dd<03>|D<00>S)z'Extract all [[wikilinks]] from content.z\[\[([^\]|]+)(?:\|[^\]]+)?\]\]cSsg|]}|<01>d<00><01>qS)<01>)<01>group)<02>.0<EFBFBD>mr%r%r&<00>
<listcomp><sz%extract_wikilinks.<locals>.<listcomp>cSsg|]}|<01>dd<01><02>qS)z.md<6D>)<01>replace)r*<00>linkr%r%r&r,><00>)<02>re<72>finditer)r#<00>patternZlinksr%r%r&<00>extract_wikilinks8sr4cCs>d}|<00>d<02>r |d7}|<00>d<04>r|d7}|<00>d<05>r|d7}|S)z Score frontmatter quality (0-3).rzIs Ar(z
Belongs toz
Related to)<01>get)<02>fm<66>scorer%r%r&<00>score_frontmatter@s


r8cCs&|<00>t<01>}t|j<03>dkr|jdSdS)zGet category from path.r(r<00>root)<04> relative_to<74> LAPUTA_ROOT<4F>len<65>parts)<02>pathZrelr%r%r&<00> get_categoryKs
r?c Cs<>td<01>i}i}t<01>d<02>D]m}dt|<02>vrq t|<02>}|tvrq z|jdd<05>}WntyC}ztd|<02>d|<05><00><04>WYd}~q d}~wwt|<04>}t |<04>}|j
}t|<02> t<01><01> d <09><01>} ||t |<06>|gt|<04>| d
<EFBFBD>||<|||<||| <|||<03>d |<08><00><q td t|<00><01>d <0A><03>td<0E>|<00><0F>D] \}
} | dD]} | |vr<>|| } | |vr<>|| d<00>|
<EFBFBD>q<>q<EFBFBD>|<00><0F>D]\}
} t| d<00>| d<t| d<00>| d<| d| d| d<q<>||fS)z3Scan all notes, build link graph, return node data.u.📊 Scanning notes and building link graph...z*.mdz /journal/zutf-8)<01>encodingu ⚠️ Skip <20>: Nr-)<07>title<6C>category<72>fm_score<72>outlinks<6B>inlinksZcontent_length<74>rel_path<74>/u
✅ Found z notes (excluding journal)u🔗 Resolving wikilinks...rErFZ
out_degreeZ in_degree<65> total_degree)<11>printr;Zrglob<6F>strr?<00>INCLUDE_CATEGORIESZ read_text<78> Exceptionr'r4Zstemr:Z with_suffixr8r<<00>items<6D>append)<0E>nodes<65> link_lookupZmd_filerCr#<00>er6Z wikilinksrBrGr><00>node<64>link_ref<65> target_pathr%r%r&<00> build_graphPs\  <08><02>
<EFBFBD>  <02><02>rV<00><>c
s<>td|<02>d<02><03>tt<02>}<03><00><03>D] \}}||d<00>|<04>qt<05>}gd<04><01><01>D]}||vrC|<06>||<00>td|<07>dt||<00><01>d<07><05>q'tdt|<06><01>d <09><03>|t|<06>}<08>fd
d <0B>tD<00>} g}
| D]"}||D]}||vr<><72>|}|d d |d} |
<EFBFBD>| |f<02>qgqa|
j dd<10>t
<EFBFBD>} |
D]+\} }t|<06>|kr<>n <20>|d}t <0B> |d<11>} | || kr<>|<06> |<04>| |d7<q<>tdt|<06><01>d<14><03>td<15>d}d}t|<06>|dk<00>r<>|d7}|dkr<>n<EFBFBD>d}d}|D]#}<04>|}|dD]}|d7}||v<00>r||}||v<00>r|d7}q<>q<EFBFBD>|dk<04>r||nd}|dk<05>r#td|d<1C>d<1D><03>n<>t
<EFBFBD>}|D]*}<04>|}|dD]}||v<00>rO||}|<16>v<00>rO||v<01>rO||d7<<00>q2<71>q(|<15>sWnud}tdd|d<00>}|<15>d <20>D]B\}}t|<06>|dk<05>rvn4||k<00>r}<7D>qg<71>|d}t <0B> |d<11>} t| d!d"<22>}| ||k<00>r<>|<06> |<04>| |d7<|d7}<17>qgtd#|<0E>d$|<17>d%t|<06><01>d&|d<1C>d'<27> <09>|dk<02>r<>nt|<06>|dks<>td(<28>t
<EFBFBD>fd)d*<2A>|D<00><01>}t|<1B><03>d+d,<2C>dd-<2D>D]\}}td.|<07>d|<19><00><04><00>q<>|S)/z5Select ~target_count notes prioritizing connectivity.u
🎯 Selecting ~z notes...rC)r r
rrrru ✓ rAz (all)z Phase 1: z notes selectedcsg|]}|<01>vr|<01>qSr%r%)r*<00>c)<01> priority_catsr%r&r,<00>r0z select_notes.<locals>.<listcomp>rI<00>
rDT)<01>reverserr(z Phase 2: z total notes selectedz1 Phase 3: Expanding to improve link coherence...rg@<40>rE<><E79A99><EFBFBD><EFBFBD><EFBFBD>?u ✅ Reached <20>.1%z link resolution!<21><00><00><>g@rz Iteration z: added z notes (total: z, resolution: <20>)u"
📊 Final selection by category:c3s<00>|] }<01>|dVqdS)rCNr%)r*<00>p)rPr%r&<00> <genexpr>s<02>zselect_notes.<locals>.<genexpr>cS<00>|dS<00>Nr(r%<00><01>xr%r%r&<00><lambda><00>zselect_notes.<locals>.<lambda>)<02>keyr[z )rJr<00>listrNrO<00>set<65>updater<rL<00>sortr<00> TARGET_DISTr5<00>add<64>max<61> most_common<6F>sorted)rPrQ<00> target_countZ by_categoryr>rS<00>selected<65>catZremaining_targetZremaining_catsZ
candidatesr7<00>
cat_countsZ cat_limitZ iterationZprev_resolution<6F> total_links<6B>resolved_linksrTrZcurrent_resolutionZ external_refsrUZaddedZmin_refs<66>countZ max_cat_sizeZ final_countsr%)rPrYr&<00> select_notes<65>s<><02>  <02><02>      
<02> 

<02><02>
 
<04><04>
  
<04>(
<10>?r|c Cs<>td<01>t<01>}|D]"}||}|<03>|d<00>|<03>|d<00>|<03>|d<00>d|d<00><00><03>q d}d}g}|D]H}||}|d} |t| <09>7}d}
| D]} | |vrZ|| } | |vrZ|
d7}
qH||
7}| r||
t| <09>} | d kr|t| <09>d
kr||<08>|| t| <09>|
f<04>q4|dkr<>||nd}td |<06><00><02>td |<07><00><02>td |d<0E><04><02>|r<>tdt|<08><01>d<10><03>t|dd<12>d<13>dd<15>D]#\}}}}
td||d<00>d||d<00>d|
<EFBFBD>d|<10>d|d<19>d<1A> <0B>q<>|S)z+Check link resolution rate in selected set.u!
🔗 Verifying link coherence...rBrGrCrHrrEr(g<00>?r_z Total outgoing links: z Resolved links: z Resolution rate: r^u
⚠️ z. notes with <50% link resolution and >3 links:cSrerfr%rgr%r%r&ri7rjz'verify_link_coherence.<locals>.<lambda>)rkNrZ<00> rAz (z.0%rb)rJrmrqr<rOrt)rPrvrQZ selected_refsr>rSryrz<00>broken_by_noterE<00>resolvedr/r<00>resolution_rate<74> overall_rate<74>rate<74>totalr%r%r&<00>verify_link_coherence sH <02> <02>$<r<>c Cstdt|<00><01>dt<02>d<03><05>t<02><03>rtdt<02><00><02>t<04>t<02>tjddd<06>d}g}|D]8}|<04>t<08>}t|}z|j jddd<06>t<04>
||<06>|d7}Wq*t yb}z |<03> ||f<02>WYd }~q*d }~wwtd
|<02>d <0B><03>|r<>td t|<03><01>d <0A><03>|d d<0E>D]\}}td|<04>d|<08><00><04>q}|S)z9Copy selected notes to demo vault, maintaining structure.u
📂 Copying z
notes to z...z Removing existing T)<02>parents<74>exist_okrr(Nu ✅ Copied z notesu
⚠️ z errors:<3A>r}rA) rJr<<00> DEMO_ROOT<4F>exists<74>shutilZrmtree<65>mkdirr:r;<00>parentZcopy2rMrO) rvrP<00>copied<65>errorsr>rGZdestrR<00>errr%r%r&<00>copy_selected_notes<s0

  <08><02>r<>cCs<>td<01>t<01>\}}t||dd<03>}t|||<01>}t||<00>}td<04>td<05>td<06>td|<04><00><02>td|d <09><04><02>td
t<05><00><02>|d kS) Nu 🚀 Creating Laputa demo vault
rW)ruz=
============================================================u✅ DEMO VAULT CREATEDz<============================================================z Total notes: zLink resolution: r^z
Location: r])rJrVr|r<>r<>r<>)rPrQrvZlink_resolutionr<6E>r%r%r&<00>main^s
 
r<><00>__main__r()rW)<1B>__doc__<5F>osr1r!Zpathlibr<00> collectionsrrr<><00>homer;r<>rLrpr'r4r8r?rVr|r<>r<>r<><00>__name__Zsuccess<73>exitr%r%r%r&<00><module>sL  
<06>  
>~0"<04>