Skip to main content

zeeland frameworks core infra

Project description

Zeeland

coverage

Zeeland's core infrastructure serves the following frameworks:

Lib Description
Cogit LLM MultiAgent task inference and autonomous orchestration framework/Comming soon
Promptulate A LLM application and Agent development framework.
Gcop Your git AI copilot.

TODO

The following libraries are under development and will be released soon:

Lib Description
UACP Universal Agent Communication Protocol.
P3G Python Package Project Generator.
cushy-storage A lightweight ORM framework that provides disk caching for Python objects.
omnius A lightweight event bus framework. You can easily build a powerful event bus in your project.
cushy-socket A Python socket library. You can create a TCP/UDP connection easily.
imarkdown A practical Markdown image URL converter.
cushy-serial A lightweight Python serial library. You can create a serial program easily.
ecjtu ecjtu API SDK service, best practices for client SDK design.

Quick start

Conda package manager is recommended. Create a conda environment.

conda create -n zeeland python==3.10

Activate conda environment and install poetry

conda activate zeeland
pip install poetry

Basic Usage

Create a metadata file in the default storage path.

import json
import os

from zeeland import get_default_storage_path


def main():
    storage_path = get_default_storage_path("test")
    metadata_path = os.path.join(storage_path, "metadata.json")

    metadata = {"name": "test", "version": "1.0.0", "description": "Test metadata file"}

    with open(metadata_path, "w") as f:
        json.dump(metadata, f, indent=4)

    print(f"Created metadata file at: {metadata_path}")
    with open(metadata_path, "r") as f:
        print("Content:")
        print(json.dumps(json.load(f), indent=4))


if __name__ == "__main__":
    main()

The metadata file will be saved in the default storage path, which is ~/.zeeland/test/metadata.json.

Singleton usage

from zeeland import Singleton, singleton


@singleton()
class TestSingleton:
    pass


instance1 = TestSingleton()
instance2 = TestSingleton()

assert instance1 is instance2


class TestSingletonWithArgs(metaclass=Singleton):
    def __init__(self, value):
        self.value = value


instance1 = TestSingletonWithArgs("test1")
instance2 = TestSingletonWithArgs("test2")

assert instance1 is instance2
assert instance1.value == "test1"

Makefile usage

Makefile contains a lot of functions for faster development.

Install all dependencies and pre-commit hooks

Install requirements:

make install

Pre-commit hooks coulb be installed after git init via

make pre-commit-install

Codestyle and type checks

Automatic formatting uses ruff.

make format

Codestyle checks only, without rewriting files:

make check-codestyle

Note: check-codestyle uses ruff and darglint library

Code security

If this command is not selected during installation, it cannnot be used.

make check-safety

This command launches Poetry integrity checks as well as identifies security issues with Safety and Bandit.

make check-safety

Tests with coverage badges

Run pytest

make test

All linters

Of course there is a command to run all linters in one:

make lint

the same as:

make check-codestyle && make test && make check-safety

Docker

make docker-build

which is equivalent to:

make docker-build VERSION=latest

Remove docker image with

make docker-remove

More information about docker.

Cleanup

Delete pycache files

make pycache-remove

Remove package build

make build-remove

Delete .DS_STORE files

make dsstore-remove

Remove .mypycache

make mypycache-remove

Or to remove all above run:

make cleanup

🛡 License

License

This project is licensed under the terms of the MIT license. See LICENSE for more details.

📃 Citation

@misc{zeeland,
  author = {zeeland},
  title = {zeeland frameworks core infra},
  year = {2024},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{https://github.com/Undertone0809/zeeland}}
}

Credits 🚀 Your next Python package needs a bleeding-edge project structure.

This project was generated with P3G

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

zeeland-0.2.0.tar.gz (5.6 kB view details)

Uploaded Source

Built Distribution

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

zeeland-0.2.0-py3-none-any.whl (5.8 kB view details)

Uploaded Python 3

File details

Details for the file zeeland-0.2.0.tar.gz.

File metadata

  • Download URL: zeeland-0.2.0.tar.gz
  • Upload date:
  • Size: 5.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.9.20 Linux/6.5.0-1025-azure

File hashes

Hashes for zeeland-0.2.0.tar.gz
Algorithm Hash digest
SHA256 290ca6fbbfd347446ed859bd4051c0d81f5537b0974f40d4ee05d1f3e3032da2
MD5 1cdc954e0ce2bbe03de42b72cf67b718
BLAKE2b-256 fb4fed93d34c0963f951c2345ef9676a5bca67fd3e450357a26ec74620c1ddff

See more details on using hashes here.

File details

Details for the file zeeland-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: zeeland-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 5.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.9.20 Linux/6.5.0-1025-azure

File hashes

Hashes for zeeland-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 edb5bf327628745cefd9e4932f97a0e75bb8dbd19042d714af8694a0207c0709
MD5 c3a684b33c8d3c55f4b392f771bfc69a
BLAKE2b-256 3500534d22d3b09c2fb22515ca0cfdb1521da1b102691a0d91c0c0a60b38b5fa

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