This Engineering Notebook post reviews the present state of Leo's g.os_path 
functions and discusses various ideas for improving them.

*tl;dr*: Leo's g.os_path wrappers should be deprecated, but they will 
remain in Leo's core. 

*Background*

Leo's g.os_path wrappers contain redundant and confusing code, but cleaning 
up this mess will be dangerous. PR #3264 
<https://github.com/leo-editor/leo-editor/pull/3264> broke @path 
expressions because of an invalid rewrite of expand_path_expression. This 
method must *not* *finalize *the path by calling (directly or indirectly) 
os.path.abspath or os.path.normpath.

PR #3275 <https://github.com/leo-editor/leo-editor/pull/3275> makes the 
minimum changes necessary to make @path work again. This PR retains all 
other calls to the os.path wrappers, even when redundancies are apparent. 

*Removing redundancy*

The challenge: remove the redundancies while ensuring that Leo:
- calls os.path.expanduser and os.path wherever needed.
- never calls os.path.normpath inappropriately.
  Finalizing a path too soon can cause bugs. 

*Deprecating the wrappers*

These wrappers are faux helpers. Leo's core can tolerate the g.os_path 
wrappers because they enforce standards. Plugins and scripts will likely be 
easier to understand if they call os.path functions directly.

*Summary*

Leo's core can tolerate the g.os_path wrappers because they enforce 
standards. I plan to deprecate these wrappers for general use.

Revising these wrappers is dangerous. The work might not become part of Leo 
6.7.3.

Your comments, please.

Edward

-- 
You received this message because you are subscribed to the Google Groups 
"leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to leo-editor+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/leo-editor/bf7197b1-a14c-42c4-a01c-4c306875bce5n%40googlegroups.com.

Reply via email to