Skip to main content

PyCUC: A lightweight Python package for creating custom unit conversions. Easily define and convert between units with simplicity and flexibility.

Project description

🔄 Python Custom Unit Converter (PyCUC)

PyCUC Logo

Downloads PyPI Python Version License Read the Docs

Python Custom Unit Converter (PyCUC) is an open-source package designed to simplify unit conversions in Python. With PyCUC, you can effortlessly create custom conversion factors, convert between units, and streamline calculations in various fields, such as physics, engineering, and scientific computing.

✨ Key Features

  • 📐 Custom Conversion Factors: Define your own conversion factors for unique units
  • 🔄 Flexible Unit Conversions: Convert between units with ease, using simple and intuitive methods
  • 🪶 Lightweight: Minimal dependencies and optimized for performance
  • 🚀 Easy to Use: Simple installation and straightforward usage

References

PyCUC supports a wide range of unit conversions. Below are the updated references you can use for conversions:

  • Density: Convert between units like kg/m³, g/cm³, lb/ft³, etc.
  • Energy: Convert between units like J, kJ, cal, BTU, etc.
  • Heat Capacity: Convert between units like J/mol·K, kJ/mol·K, cal/mol·K, etc.
  • Volume: Convert between units like m³, L, mL, ft³, etc.
  • Mass: Convert between units like kg, g, lb, oz, etc.
  • Power: Convert between units like W, kW, HP, etc.
  • Length: Convert between units like m, cm, mm, in, ft, etc.
  • Force: Convert between units like N, kN, lbf, etc.

📊 Google Colab

You can use the following code to run PyCUC in Google Colab:

Open In Colab

📥 Installation

Install PyCUC with pip:

import pycuc
# check version
print(pycuc.__version__)

🔍 Usage Examples

📋 Example 1: Basic Operations

🔍 Check References

print(pycuc.check_reference('pressure'))

🛠️ Create a Custom Unit Converter

# ! pressure
my_cuc_1 = pycuc.create_cuc(1, 'MPa')
# convert to Pa
print(my_cuc_1.convert('Pa'))
print(my_cuc_1.convert('bar'))
print(my_cuc_1.convert('kPa'))

# ! temperature
my_cuc_2 = pycuc.create_cuc(358, 'K')
# convert to K
print(my_cuc_2.convert('C'))
print(my_cuc_2.convert('F'))
print(my_cuc_2.convert('R'))

↔️ Convert From/To

# ! pressure
print(pycuc.convert_from_to(1, 'MPa', 'Pa'))
# ! temperature
print(pycuc.convert_from_to(358, 'K', 'C'))
print(pycuc.convert_from_to(25, 'C', 'K'))

🔄 Convert From/To (Short Format)

# ! pressure
print(pycuc.to(125, 'MPa => Pa'))
# ! temperature
print(pycuc.to(360, 'K => C'))
print(pycuc.to(250, 'C => K'))

✏️ Define a New Unit

# ! heat capacity unit: J/mol.K
my_cuc_3 = pycuc.create_cuc(25, 'J/mol.K')
# add custom
my_cuc_3.add_custom_unit('J/mol.K', 1)
my_cuc_3.add_custom_unit('kJ/mol.K', 1000)
# conversion
print(my_cuc_3.convert('J/mol.K'))
print(my_cuc_3.convert('kJ/mol.K'))

📚 Check Reference

# ! pressure
print(my_cuc_3.check_reference('pressure'))
# ! temperature
print(my_cuc_3.check_reference('temperature'))
# ! custom
print(my_cuc_3.check_reference('custom'))

📋 Example 2: Advanced Usage

📂 Load Custom Units from YML Files

# load unit yml file
unit_file = os.path.join(os.getcwd(), 'test', 'custom-unit.yml')
my_cuc = pycuc.go(reference_file=unit_file)

🔀 Using from_to Method

# ! pressure
print(my_cuc.from_to(1, 'MPa', 'Pa'))

🚀 Using to Method

# ! pressure
print(my_cuc.to(125, 'MPa => Pa'))

📋 Check References

# ! from yml file
print(my_cuc.check_reference('custom::CUSTOM'))
print(my_cuc.check_reference('custom::HEAT-CAPACITY'))
print(my_cuc.check_reference('custom::ENERGY'))

❓ FAQ

For any questions, contact me on LinkedIn

👨‍💻 Authors

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

pycuc-2.3.0.tar.gz (16.2 kB view details)

Uploaded Source

Built Distribution

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

pycuc-2.3.0-py3-none-any.whl (21.2 kB view details)

Uploaded Python 3

File details

Details for the file pycuc-2.3.0.tar.gz.

File metadata

  • Download URL: pycuc-2.3.0.tar.gz
  • Upload date:
  • Size: 16.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.8

File hashes

Hashes for pycuc-2.3.0.tar.gz
Algorithm Hash digest
SHA256 1c6be918ca3350114ebacadabd3aaa4c07347e8d05a76a783f44a9830e786eeb
MD5 f601b3df0fbdcbaf777ef4eeeaf3275f
BLAKE2b-256 b85c1b7559e2e8e89227dc3f5bcda622fac56b9e9bf71269d769d9c60a38dc56

See more details on using hashes here.

File details

Details for the file pycuc-2.3.0-py3-none-any.whl.

File metadata

  • Download URL: pycuc-2.3.0-py3-none-any.whl
  • Upload date:
  • Size: 21.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.8

File hashes

Hashes for pycuc-2.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8cb1f3c18836737fb2b55be5cb485f2673aefa66e2273350625d4d2b62f1c4b7
MD5 e488c7184d657ced92d448a469bf6164
BLAKE2b-256 291cc4263f83dcc2257b1f4bd134d162c1a9044b3dfe9c8d47d86520e3684ddf

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