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.3.tar.gz (71.8 kB 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.3-py3-none-any.whl (18.6 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for masterpiece-0.0.3.tar.gz
Algorithm Hash digest
SHA256 e5f82654601578a1b57a4dcea9c771368b0346bacfbbb9c008da2c825d191002
MD5 82282474334d5a9f9342e86825ccb32e
BLAKE2b-256 bc2fafa19620fa83fd8d4647a1ae5584e068bf1688f75136690347a467d8ebe9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: masterpiece-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 18.6 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 0652aa00de676649464919d3e86311b4759233224b5be2ac9c3c16eb065b17d5
MD5 77813d8f36ea5f399583534e4f1ce6d8
BLAKE2b-256 23113363890f1d989657bafff8d14bdc66da70caac371795b4013139deb2e230

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