Skip to main content

Feature-rich open source library for building well-formatted and extensible engineering calculations.

Project description

Logo

Tests    Coverage Status    License: MIT    PyPI version

efficalc

A feature-rich Python library for reimagined engineering calculations.

Contents

Introduction

efficalc provides an extensible, testable, and powerful framework for building and managing complex calculations.

efficalc is designed to transform how engineers approach calculations, moving away from traditional methods like manual spreadsheets and toward a more efficient, accurate, and collaborative engineering calculation process.

Simple syntax for Python calculations:

Efficalc Demo Typing

Turns into submittal-ready reports:

Efficalc Demo Report

Examples

Some simple examples

Some more complex examples

Documentation and Distribution

Quickstart

Installation

Install efficalc with pip:

pip install efficalc

First Calculation Function

Calculations in efficalc are written as a function.

These calculation functions are primarily composed of Input and Calculation elements, but there are also many more options to make a clear and accurate calculation.

from efficalc import Calculation, Input, Title, sqrt

def calculation():
    Title("Pythagorean's Theorem and Perimeter")
    
    a = Input("a", 3, description="Length of side a")
    b = Input("b", 4, description="Length of side b")
    
    c = Calculation("c", sqrt(a**2 + b**2), description="Length of the hypotenuse")
    
    Calculation("P", a + b + c, description="Perimeter of the triangle")

View the Report

Instantly view or print a report for your calculation in your browser with the ReportBuilder.

from efficalc.report_builder import ReportBuilder
from pythagorean_perimeter import calculation

builder = ReportBuilder(calculation)
builder.view_report()

The resulting calculation report

Updating Input Values

The value provided to the Input class in your calculation function is treated as a default value.

When you run your calculation with different input values, pass in a dictionary of the default overrides into the optional second parameter of the ReportBuilder:

new_inputs = {"a": 9.2, "b": 0.87}
builder = ReportBuilder(calculation, new_inputs)
builder.view_report()

Features

Automated report generation

Generate detailed, professional reports automatically, ensuring clarity and precision in communication.

Open source

efficalc welcomes community contributions. Request features or contribute directly to enhance its capabilities.

Engineering-specific features

Benefit from built-in tools tailored to solving common engineering challenges. See our section property library in action.

Reusable

Create calculation templates once and reuse them across multiple designs and projects, saving time and ensuring consistency.

Testable

Easily test your calculations to reduce errors and improve confidence every design. Read the testing guide.

Integrate with other workflows

Seamlessly integrate with your existing Python-enabled workflows to boost efficiency and connectivity across tools and platforms. See some examples of this.

Figures now supported

Easily add figures to your calculation reports for even more clarity. Read the full documentation for figures.

Control your content

Tailor your calculation reports to include only the most relevant information, making them as concise or detailed as you prefer.

Contributing

We welcome contributions of all kinds from the community! Whether it's reporting a bug, requesting a feature, or submitting a pull request, your input and engagement is invaluable to efficalc's development.

  • Report issues here.
  • Submit pull requests here.

Built With

Documentation

License

efficalc is released under the MIT 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

efficalc-1.2.6.tar.gz (269.8 kB view details)

Uploaded Source

Built Distribution

efficalc-1.2.6-py3-none-any.whl (276.5 kB view details)

Uploaded Python 3

File details

Details for the file efficalc-1.2.6.tar.gz.

File metadata

  • Download URL: efficalc-1.2.6.tar.gz
  • Upload date:
  • Size: 269.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.0

File hashes

Hashes for efficalc-1.2.6.tar.gz
Algorithm Hash digest
SHA256 2741b28da2c73c737219f085c7e699d20d508c0b1e1d69c31dc7fd6f5dcf820e
MD5 dbe7c4468e082a440ee74d2bed066704
BLAKE2b-256 3bf1ef3aa5797ff65077073e6bee7b6fb8e30d1d572255a1e6a6c05a5af7580c

See more details on using hashes here.

File details

Details for the file efficalc-1.2.6-py3-none-any.whl.

File metadata

  • Download URL: efficalc-1.2.6-py3-none-any.whl
  • Upload date:
  • Size: 276.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.0

File hashes

Hashes for efficalc-1.2.6-py3-none-any.whl
Algorithm Hash digest
SHA256 5af3867f7e9408706f7cb8550d0fd7c805a960ea3999470e9a5cee44d604b4f4
MD5 9f7a3949856f5e7ce90a76bc1157b35d
BLAKE2b-256 f5bcb0d1185f8c1d67edd872462d71b0ab93fec1bfa72160ee37044904f216c5

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page