Skip to main content

Shared functionality for the calcipy-ecosystem

Project description

corallium

CLI utility functions extracted from Calcipy.

Installation

  1. poetry add corallium

  2. Take advantage of the logger or other common functionality

    form corallium.log import LOGGER
    
    LOGGER.info('Hello!')
    

Usage

  • log: Configure and use the global logger

    from corallium.log import LOGGER, configure_logger
    import logging
    
    configure_logger(log_level=logging.INFO)
    LOGGER.info('Processing started', item_count=42)
    
  • pretty_process: Run parallel tasks with progress bars

    from corallium.pretty_process import pretty_process
    
    
    def task(task_id, shared_progress, data):
        for item in data:
            process(item)
            shared_progress[task_id] += 1
        return len(data)
    
    
    results = pretty_process(task, data=items, num_workers=4)
    
  • shell: Execute shell commands with output capture

    from corallium.shell import capture_shell
    
    output = capture_shell('git status', timeout=30)
    
  • file_helpers: File utilities and project configuration

    from corallium.file_helpers import find_in_parents, read_pyproject
    
    pyproject = read_pyproject()
    lock_path = find_in_parents(name='uv.lock')
    
  • tomllib: Backport wrapper for TOML parsing (Python <3.11 compatibility)

    from corallium.tomllib import tomllib
    
    data = tomllib.loads(content)
    
  • dot_dict: Wrapper for dotted-dictionary access via Python-Box

    from corallium.dot_dict import ddict
    
    config = ddict({'nested': {'value': 42}})
    print(config.nested.value)
    

For more example code, see the scripts directory or the tests.

Project Status

See the Open Issues and/or the CODE_TAG_SUMMARY. For release history, see the CHANGELOG.

Contributing

We welcome pull requests! For your pull request to be accepted smoothly, we suggest that you first open a GitHub issue to discuss your idea. For resources on getting started with the code base, see the below documentation:

Code of Conduct

We follow the Contributor Covenant Code of Conduct.

Open Source Status

We try to reasonably meet most aspects of the "OpenSSF scorecard" from Open Source Insights

Responsible Disclosure

If you have any security issue to report, please contact the project maintainers privately. You can reach us at dev.act.kyle@gmail.com.

License

LICENSE

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

corallium-2.2.0.tar.gz (26.3 kB view details)

Uploaded Source

Built Distribution

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

corallium-2.2.0-py3-none-any.whl (31.0 kB view details)

Uploaded Python 3

File details

Details for the file corallium-2.2.0.tar.gz.

File metadata

  • Download URL: corallium-2.2.0.tar.gz
  • Upload date:
  • Size: 26.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for corallium-2.2.0.tar.gz
Algorithm Hash digest
SHA256 6021ad469154782196d3cebb55868f325208c905fa8b0e52328796d979237d68
MD5 8009fef7e83d6ad7eb55f50826d7c43b
BLAKE2b-256 e75e21fa48f5c79cae8779ce3bc65af2d08316190853eaf7e9aa82b2fa866583

See more details on using hashes here.

Provenance

The following attestation bundles were made for corallium-2.2.0.tar.gz:

Publisher: publish.yml on KyleKing/corallium

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file corallium-2.2.0-py3-none-any.whl.

File metadata

  • Download URL: corallium-2.2.0-py3-none-any.whl
  • Upload date:
  • Size: 31.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for corallium-2.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 497c8568832eb1c8361b82c250184ee15b6109a065fae249c045860fd2e67883
MD5 b6029c224462c1bb156e9a8e3e770b98
BLAKE2b-256 0b935af01a31a5e1252fda2a25387b3c1d51b4a4e70e0d5148226ac52883b82f

See more details on using hashes here.

Provenance

The following attestation bundles were made for corallium-2.2.0-py3-none-any.whl:

Publisher: publish.yml on KyleKing/corallium

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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