Skip to main content

Basic Python utilities

Reason this release was yanked:

Superseded

Project description

Latest release: 0.1.0 (2025-07-01)

lockss-pybasic provides basic utilities for various LOCKSS projects written in Python.

Modules

lockss.pybasic.cliutil

Command line utilities.

  • BaseCli is a base class for command line interfaces that uses pydantic-argparse to define arguments and subcommands, and rich-argparse to display help messages. For each command x-y-z induced by a pydantic-argparse field named x_y_z deriving from BaseModel , the dispatch() method expects a method named _x_y_z.

  • StringCommand provides a pydantic-argparse way to define a subcommand whose only purpose is printing a string, with COPYRIGHT_DESCRIPTION, LICENSE_DESCRIPTION and VERSION_DESCRIPTION constants provided for convenience. Example:

    class MyCliModel(BaseModel):
        copyright: Optional[StringCommand.type(my_copyright_string)] = Field(description=COPYRIGHT_DESCRIPTION)
  • at_most_one_from_enum and get_from_enum provide a facility for defining a pydantic-argparse model that defines one command line option per constant of an Enum, using an enum keyword argument in the Field definition. Example:

    class Orientation(Enum):
        horizontal = 1
        vertical = 2
        diagonal = 3
    
    DEFAULT_ORIENTATION = Orientation.horizontal
    
    class MyCliModel(BaseModel):
        diagonal: Optional[bool] = Field(False, description='display diagonally', enum=Orientation)
        horizontal: Optional[bool] = Field(False, description='display horizontally', enum=Orientation)
        unrelated: Optional[bool] = Field(...)
        vertical: Optional[bool] = Field(False, description='display vertically', enum=Orientation)
    
        @root_validator
        def _at_most_one_orientation(cls, values):
            return at_most_one_from_enum(cls, values, Orientation)
    
        def get_orientation(self) -> Orientation:
            return get_from_enum(self, Orientation, DEFAULT_ORIENTATION)
lockss.pybasic.errorutil

Error and exception utilities.

  • InternalError is a no-arg subclass of RuntimeError.

lockss.pybasic.fileutil

File and path utilities.

  • file_lines returns the non-empty lines of a file stripped of comments that begin with # and run to the end of a line.

  • path takes a string or PurePath and returns a Path for which Path.expanduser() and Path.resolve() have been called.

lockss.pybasic.outpututil

Utilities to work with tabulate.

  • OutputFormat is an Enum of all the output formats from tabulate.tabulate_formats.

  • OutputFormatOptions defines a pydantic-argparse model for setting an output format from OutputFormat.

Release Notes

See CHANGELOG.rst.

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

lockss_pybasic-0.2.0.dev4.tar.gz (6.9 kB view details)

Uploaded Source

Built Distribution

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

lockss_pybasic-0.2.0.dev4-py3-none-any.whl (12.5 kB view details)

Uploaded Python 3

File details

Details for the file lockss_pybasic-0.2.0.dev4.tar.gz.

File metadata

  • Download URL: lockss_pybasic-0.2.0.dev4.tar.gz
  • Upload date:
  • Size: 6.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.2 CPython/3.13.5 Linux/6.15.8-arch1-2

File hashes

Hashes for lockss_pybasic-0.2.0.dev4.tar.gz
Algorithm Hash digest
SHA256 a4e7f8a4bfdcaf93d559b3d2df4ebef9a8aec162e8abea3666f972e2fa00cab4
MD5 6f7adb62c3b5f544316d5a92a1ae5675
BLAKE2b-256 4c6e5ad7e779b3781970518bf6b8848098f17f3a18999f84d54aaf0252c1a474

See more details on using hashes here.

File details

Details for the file lockss_pybasic-0.2.0.dev4-py3-none-any.whl.

File metadata

  • Download URL: lockss_pybasic-0.2.0.dev4-py3-none-any.whl
  • Upload date:
  • Size: 12.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.2 CPython/3.13.5 Linux/6.15.8-arch1-2

File hashes

Hashes for lockss_pybasic-0.2.0.dev4-py3-none-any.whl
Algorithm Hash digest
SHA256 0683a75e21ac3a282043829168de72b954054d8a7ddb14981f9656b08ecf522a
MD5 5afb1cf75cfff59a0cf889d18f0fbe4d
BLAKE2b-256 3c6fe4674a23dbc366174db63359a9931e8b89b1f78a7c6c074ca7de8aa4013d

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