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.7.tar.gz (269.8 kB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: efficalc-1.2.7.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.7.tar.gz
Algorithm Hash digest
SHA256 b1ea5024e318255efb31b11feedd52ffda533887f31e8f2ecebb641313d72ada
MD5 586ec94f933f5dade5497ded80dd35e7
BLAKE2b-256 91035941c2bc81a8d8a01d701f1f431a00a3783f382dd53393b4cbad74f2b0ac

See more details on using hashes here.

File details

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

File metadata

  • Download URL: efficalc-1.2.7-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.7-py3-none-any.whl
Algorithm Hash digest
SHA256 6f33e449beb1adffb035c8b91e2d5e25fdc910cab91bf27d3d812767183b3193
MD5 9adb87ece6deda29a9340a3f7be8620b
BLAKE2b-256 a0feaf08ee5c644d1f87da1602dffc859a1349f62a98ed234e599dcea3bff15b

See more details on using hashes here.

Supported by

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