Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python.announce > #1152

XML VFS 1.0.1 for Midnight Commander

Path csiph.com!usenet.pasdenom.info!weretis.net!feeder1.news.weretis.net!feeder.erje.net!eu.feeder.erje.net!xlned.com!feeder1.xlned.com!newsfeed.xs4all.nl!newsfeed2.news.xs4all.nl!xs4all!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail
Return-Path <phd@phdru.name>
X-Original-To python-announce-list@python.org
Delivered-To python-announce-list@mail.python.org
X-Spam-Status OK 0.000
X-Spam-Evidence '*H*': 1.00; '*S*': 0.00; 'inspired': 0.05; 'represents': 0.05; 'gpl': 0.07; '1.0.1': 0.09; 'attributes': 0.09; 'git': 0.09; 'newline': 0.09; 'release.': 0.09; 'url:github': 0.09; 'url:software': 0.09; 'values);': 0.09; '0.3.0': 0.16; '0.5.0': 0.16; '0.6.0': 0.16; '1.0.0': 0.16; 'attributes,': 0.16; 'attributes.': 0.16; 'bugs.': 0.16; 'clone': 0.16; 'email addr:phdru.name': 0.16; 'email name:phd': 0.16; 'encoding.': 0.16; 'filesystem': 0.16; 'fuse': 0.16; 'get,': 0.16; 'header:X-Face:1': 0.16; 'minus': 0.16; 'nodes': 0.16; 'numbered': 0.16; 'numbering': 0.16; 'read-only.': 0.16; 'sorting': 0.16; 'subject:XML': 0.16; 'tags.': 0.16; 'to:addr:python-announce- list': 0.16; 'all.': 0.16; 'ignore': 0.16; 'separate': 0.22; 'installation': 0.23; 'header:User-Agent:1': 0.23; 'convenient': 0.24; 'initial': 0.24; 'file.': 0.24; 'sort': 0.25; 'shown': 0.26; 'values': 0.27; 'fixed': 0.29; '(c)': 0.29; 'xml': 0.29; "doesn't": 0.30; 'characters': 0.30; 'skip:g 30': 0.30; 'especially': 0.30; "i'm": 0.30; 'comments': 0.31; 'lines': 0.31; 'download:': 0.31; 'extract': 0.31; 'minor': 0.31; 'name;': 0.31; 'url:mc': 0.31; 'file': 0.32; 'text': 0.33; 'announce': 0.33; 'programmers': 0.33; 'but': 0.35; 'version': 0.36; 'shows': 0.36; 'useful': 0.36; 'charset:us-ascii': 0.36; 'example,': 0.37; 'virtual': 0.37; 'structure': 0.39; 'to:addr:python.org': 0.39; 'helps': 0.61; 'new': 0.61; 'content-disposition:inline': 0.62; 'show': 0.63; 'real': 0.63; 'chance': 0.65; 'license': 0.66; 'header:Reply-To:1': 0.67; 'home': 0.69; 'walk': 0.74; 'distinguish': 0.84; 'reply-to:addr:python.org': 0.84; '2013': 0.98
Date Mon, 25 Nov 2013 14:06:47 +0100
From Oleg Broytman <phd@phdru.name>
To Python Announce Mailing List <python-announce-list@python.org>
Subject XML VFS 1.0.1 for Midnight Commander
MIME-Version 1.0
Content-Type text/plain; charset=us-ascii
Content-Disposition inline
X-Attribution phd
X-Face "4chVP^f8; 3Bi>x"ic0%DuP(ZLyn:; kzQ1njs]5,GRZG<{<\~`|Shxi7|)d|8uO~HFRfyym {[xs@OYG]2Q]0#}0sjJp`1^1+B6]A2+{9fW=S<O7^"hul]^|AGtiI7SkYF-2VD?UH*h_!zuCIf+^F7 c0x8?W,UfhCAx^YY#1ALhvG\2yG}LW:)zw#1;Yajq"hK~S
X-Operating-System Debian GNU/Linux
X-Url http://phdru.name/
Mail-Followup-To phd@phdru.name, python-list@python.org
User-Agent Mutt/1.5.21 (2010-09-15)
X-Mailman-Approved-At Tue, 26 Nov 2013 09:48:30 +0100
X-BeenThere python-announce-list@python.org
X-Mailman-Version 2.1.15
Precedence list
Reply-To python-list@python.org, phd@phdru.name
List-Id Announcement-only list for the Python programming language <python-announce-list.python.org>
List-Unsubscribe <https://mail.python.org/mailman/options/python-announce-list>, <mailto:python-announce-list-request@python.org?subject=unsubscribe>
List-Archive <http://mail.python.org/pipermail/python-announce-list/>
List-Post <mailto:python-announce-list@python.org>
List-Help <mailto:python-announce-list-request@python.org?subject=help>
List-Subscribe <https://mail.python.org/mailman/listinfo/python-announce-list>, <mailto:python-announce-list-request@python.org?subject=subscribe>
Approved python-announce-list@python.org
Newsgroups comp.lang.python.announce
Message-ID <mailman.3221.1385455711.18130.python-announce-list@python.org> (permalink)
Lines 75
NNTP-Posting-Host 2001:888:2000:d::a6
X-Trace 1385455711 news.xs4all.nl 15955 [2001:888:2000:d::a6]:58178
X-Complaints-To abuse@xs4all.nl
Xref csiph.com comp.lang.python.announce:1152

Show key headers only | View raw


Hello!

I'm pleased to announce an XML Virtual FileSystem for Midnight Commander
version 1.0.1.


WHAT IS IT
   View an XML file in Midnight Commander as a filesystem.


WHAT'S NEW in version 1.0.1 (2013-11-24)
   Fixed a few minor bugs.

WHAT'S NEW in version 1.0.0 (2013-11-23)
   With lxml.etree-based implementation show only child namespaces
   (calculated as combined namespaces minus parent's namespaces).

WHAT'S NEW in version 0.6.0 (2013-11-22)
   Refactored _list() and attrs2text() to be completely generic.

WHAT'S NEW in version 0.5.0 (2013-11-19)
   Added lxml.etree-based implementation.

WHAT'S NEW in version 0.4.0 (2013-11-19)
   Added ElementTree-based implementation.

WHAT'S NEW in version 0.3.0 (2013-11-16)
   Initial release. Implementation based on minidom.


WHERE TO GET
   Home page: http://phdru.name/Software/mc/xml.html
   Download:  http://phdru.name/Software/mc/xml
    git clone http://git.phdru.name/extfs.d.git
     git clone git://git.phdru.name/extfs.d.git

   Installation instructions: http://phdru.name/Software/mc/INSTALL.html


The VFS represents tags as directories; the directories are numbered to
distinguish tags with the same name; numbering also helps to sort tags by their
order in XML instead of sorting them by name. Attributes, text nodes and
comments are represented as text files; attributes are shown in a file named
"attributes", attributes are listed in the file as name=value lines (I
deliberately ignore a small chance of newline characters in values); names and
values are reencoded to the console encoding. Text nodes and comments are
collected in a file named "text", stripped and reencoded. The filesystem is
read-only.

Implementation based on minidom doesn't understand namespaces, it just shows
them among other attributes. ElementTree-based implementation doesn't show
namespaces at all. Implementation based on lxml.etree shows namespaces in a
separate file "namespaces".

It is useful to have a top-down view on an XML structure but it's especially
convenient to extract text values from tags. One can get, for example, a
base64-encoded image - just walk down the VFS to the tag's directory and copy
its text file to a real file.

The VFS was inspired by a FUSE xmlfs: https://github.com/halhen/xmlfs


AUTHOR
   Oleg Broytman <phd@phdru.name>

COPYRIGHT
   Copyright (C) 2013 PhiloSoft Design

LICENSE
   GPL

Oleg.
-- 
     Oleg Broytman            http://phdru.name/            phd@phdru.name
           Programmers don't die, they just GOSUB without RETURN.

Back to comp.lang.python.announce | Previous | Next | Find similar | Unroll thread


Thread

XML VFS 1.0.1 for Midnight Commander Oleg Broytman <phd@phdru.name> - 2013-11-25 14:06 +0100

csiph-web