Skip to main content

Masterpiece framework

Project description

Welcome to MasterPiece - A Piece of Work

A compact and unified set of general purpose Python classes for writing plugin aware, object oriented applications.

Project Status and Current State

The framework is in its early development phase.

Here's what is currently available:

  • Package Infrastructure: The basic Python package setup is in place, configured with 'pyproject.toml'.
  • Early Drafts: Initial yet fully working versions of the essential core classes implemented.
  • Example application 'examples/myhome.py', which prints out its instance structure when run.
  • A plugin package named 'masterpiece_plugin' plugging in 'Hello World' greeting to 'myhome.py', demonstrating minimal yet complete and fully functional plugin.

Tn this current state, you might call the project merely a mission, rather than masterpiece, but I'm working hard to turn it into a masterpiece!

Goals

The key objectives of this framework include:

  • Robusness: Minimal yet robust API providing the developer with 100% control.
  • First-Time Excellence: The aim is to build a robust and reliable framework that is correct and efficient from the start, eliminating the need for disruptive changes or backward compatibility issues in future releases.
  • Abstraction: Provide a layer of abstraction to shield the API from the impacts of external code, including third-party libraries and APIs.

Design

The design patterns employed to achieve the goals include:

  • Object-Oriented Paradigm
  • Factory Method Pattern
  • Layered Design Pattern
  • Plugin API
  • [ More later, too busy now ]

If you appreciate these design concepts, you've come to the right place!

About the project name

Just as all creatures on Earth share a common ancestor, all components in this framework trace their lineage back to this foundational anchestor named "masterpiece" ... (okay, perhaps a bit too dramatic).

The name 'MasterPiece' was chosen to reflect commitment to fine-grained modular design ("pieces"), with a touch of humour. Masterpiece is an object, a piece of work, actually a piece of data, designed to master something, like ones home automation.

Install

  1. To install the masterpiece:

    pip install masterpiece.

  2. To install the demo-plugin:

pip install masterpiece_plugin

  1. To run: ::

    cd masterpiece/examples python myapp.py

The minimum Python version known to work is 3.8.

Developer Documentation

Getting better, but will reguire a few more hours (okay, days) of effort to produce something really usable.

Special Thanks

My ability to translate my architecture ideas into this Python framework is greatly due to the generous support of an extraordinary gentleman: Mahi.fi.

Anything else?

Can't think of ..

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

masterpiece-0.0.2.tar.gz (1.6 MB view details)

Uploaded Source

Built Distribution

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

masterpiece-0.0.2-py3-none-any.whl (19.4 kB view details)

Uploaded Python 3

File details

Details for the file masterpiece-0.0.2.tar.gz.

File metadata

  • Download URL: masterpiece-0.0.2.tar.gz
  • Upload date:
  • Size: 1.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for masterpiece-0.0.2.tar.gz
Algorithm Hash digest
SHA256 1b982c9d8a000b38eea55e96bb4f346df105b504db123a88a82cbf1a7b512139
MD5 15f4b3fcf7a3287b539dc4aeb6c3c56d
BLAKE2b-256 e9375ef103e5f3a183a10b2112ee58676492b599968ceed27d15fa93c418cb4f

See more details on using hashes here.

File details

Details for the file masterpiece-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: masterpiece-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 19.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for masterpiece-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 bc8699859f5b21c6d7a42d9aab19322246c7155518ff82b0e28d4752c96ef552
MD5 87efcc68acbc4f550d64a40a4a28b50b
BLAKE2b-256 635048b9a437fdc0d9e06f9a8c73d596bd6c0f8bf2dfbec2d774ada6ff7192c3

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