Skip to main content

Midnight Commander extfslib helper library for writing extfs archive plugins.

Project description

https://img.shields.io/pypi/v/extfslib.svg

Midnight Commander extfslib helper library for writing extfs archive plugins.

Description

Extfslib help with building Midnight Commander extfs plugins, especially for those which operates on different kind of archives.

Simplest plugin built on top of this lib would be:

import extfslib


class MyArchive(extfslib.Archive):

    ARCHIVER = "fancyarch"

    def list(self):
        if not self._contents:
            return 1

        for item in self._contents:
            sys.stdout.buffer.write(self.ITEM % item)


arch = MyArchive('/path/to/file.fancyarch')
arch.list()

In this example class instance should be able to be called with list method. All methods:

  • list

  • copyin

  • copyout

  • rm

  • mkdir

  • rmdir

  • run

should be implemented if needed, since by default all of them are just defined, but not implemented.

Of course, real life example can be a little bit more complicated, since there would be possible need for adapting LINE_PAT which is regular expression for getting attributes for the list compatible with MC along with the ITEM which holds the output pattern and utilizes dictionary from LINE_PAT, CMD which maps between class and archiver commands. Possibly there might be needed some other adjustments.

Additionally there is an optional Config class, which might be used for reading Midnight Commander ini file (ususally located in ~/.config/mc/ini), so that for the example above:

import extfslib


class MyArchive(extfslib.Archive):

    ARCHIVER = "fancyarch"

    def __init__(self):
        super().__init__()
        self.conf = extfslib.Config(self)
        if self.conf,getint('config_key'):
            # do something

where the ini config file would contain:


[myarchive]
config_key = 300

So, section name [myarchive] must match class name in lower case, and name of the option is arbitrary string folowed by value. Note, the section and options must be added manually.

Installation

Install from Pypi

# pip install extfslib

or, as a user:

$ pip install extfslib --user

or use virtualenv:

$ git clone https://github.com/gryf/mc_extfslib
$ cd mc_extfslib
$ virtualenv venv
$ source venv/bin/activate
(venv) $ pip install

License

This software is licensed under 3-clause BSD license. See LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

extfslib-1.3.tar.gz (5.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

extfslib-1.3-py2.py3-none-any.whl (6.3 kB view details)

Uploaded Python 2Python 3

File details

Details for the file extfslib-1.3.tar.gz.

File metadata

  • Download URL: extfslib-1.3.tar.gz
  • Upload date:
  • Size: 5.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.5

File hashes

Hashes for extfslib-1.3.tar.gz
Algorithm Hash digest
SHA256 5f540f69b88811f2422846a0c8ba0676806b262e5d3e997f85e0e778a5a3afe4
MD5 4f6be34c326bf40d4211fa2eff42391c
BLAKE2b-256 f5014fabd9139748ebe4387d3cfe4e9664ed5c327426306196f5c4692384832a

See more details on using hashes here.

File details

Details for the file extfslib-1.3-py2.py3-none-any.whl.

File metadata

  • Download URL: extfslib-1.3-py2.py3-none-any.whl
  • Upload date:
  • Size: 6.3 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.5

File hashes

Hashes for extfslib-1.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 8ffc8bcc341f65154fc640d7bbaad6b8d0f4b659b0678988589b0890a24f8832
MD5 d57ec084f93a3ebd235cad0895ff3e93
BLAKE2b-256 b341ff115f3c0cddcc3aa0087738dc2e810dc1e59ce605e820f189763b053c47

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page