# Thermocouples
[](https://badge.fury.io/py/thermocouples)
[](https://pypi.org/project/thermocouples/)
[](https://opensource.org/licenses/MIT)
A comprehensive, high-accuracy thermocouple calculation library for Python with clean object-oriented architecture and professional API design that hides implementation details.
## Features
- **🎯 Temperature to Voltage Conversion**: Convert temperature (°C) to thermoelectric voltage (V)
- **🌡️ Voltage to Temperature Conversion**: Convert voltage (V) to temperature (°C)
- **📊 Seebeck Coefficient Calculation**: Get the Seebeck coefficient (µV/K) at any temperature
- **📈 Temperature Derivative of Seebeck**: Calculate dSeebeck/dT (nV/K²) for advanced analysis
- **❄️ Cold Junction Compensation**: Built-in `volt_to_temp_with_cjc()` method for reference junction temperature compensation
- **🔬 Individual Thermocouple Leg Calculations**:
- Voltage calculations for positive and negative legs separately
- Seebeck coefficient calculations for positive and negative legs separately
- **🎯 High Accuracy**: Based on NIST Monograph 175 polynomial coefficients
- **✅ All Standard Types**: Supports B, E, J, K, N, R, S, and T type thermocouples
- **🐍 Pure Python**: No external dependencies required
- **🏗️ Modern OOP Architecture**: Clean, maintainable object-oriented design
- **🧪 Well Tested**: Comprehensive test suite ensuring accuracy
- **📚 Type Safe**: Full type hints for better IDE support
## What's New in Version 2.1
**🧹 Professional API Cleanup:**
- **Clean Interface**: All internal implementation details hidden with underscore prefixes
- **IDE-Friendly**: Only user-relevant methods visible in autocomplete
- **Simplified Functions**: Shortened method names (`temp_to_volt` vs `temperature_to_voltage`)
- **Pure OOP Design**: Complete removal of legacy function-based API
- **Professional Standards**: Following Python best practices for library design
## Supported Thermocouple Types
| Type | Temperature Range | Materials | Application |
|------|------------------|-----------|-------------|
| **B** | 0°C to 1820°C | Pt-30%Rh / Pt-6%Rh | Ultra-high temperature |
| **E** | -270°C to 1000°C | Ni-Cr / Cu-Ni | Highest sensitivity |
| **K** | -270°C to 1372°C | Ni-Cr / Ni-Al | Most popular, general purpose |
| **N** | -270°C to 1300°C | Ni-Cr-Si / Ni-Si | Improved K-type |
| **R** | -50°C to 1768°C | Pt-13%Rh / Pt | High temperature, precious metal |
| **S** | -50°C to 1768°C | Pt-10%Rh / Pt | High temperature, precious metal |
| **T** | -270°C to 400°C | Cu / Cu-Ni | Cryogenic applications |
## Quick Start
### Installation
```bash
pip install thermocouples
```
### Basic Usage (New OOP API - Recommended)
```python
import thermocouples as tc
# Create thermocouple instance
tc_k = tc.get_thermocouple("K")
# Temperature to voltage conversion
voltage = tc_k.temp_to_volt(100.0) # 4.096 mV at 100°C
print(f"K-type at 100°C: {voltage:.3f} mV")
# Voltage to temperature conversion
temperature = tc_k.volt_to_temp(0.004096) # Back to ~100°C
print(f"K-type at 4.096 mV: {temperature:.1f}°C")
# Seebeck coefficient calculation
seebeck = tc_k.temp_to_seebeck(100.0) # µV/K
print(f"Seebeck coefficient at 100°C: {seebeck:.1f} µV/K")
```
### Advanced Usage
```python
import thermocouples as tc
# Get a thermocouple instance
tc_k = tc.get_thermocouple("K")
# High-precision calculations
voltage = tc_k.temp_to_volt(200.5)
seebeck = tc_k.temp_to_seebeck(200.5) # Seebeck coefficient
dsdt = tc_k.temp_to_dsdt(200.5) # Temperature derivative
# Cold junction compensation
hot_junction_temp = 500.0 # °C
cold_junction_temp = 25.0 # °C (room temperature)
# Method 1: Built-in Cold Junction Compensation (Recommended)
measured_voltage = 0.019665 # V (voltage measured by your instrument)
actual_temp = tc_k.volt_to_temp_with_cjc(measured_voltage, cold_junction_temp)
print(f"Actual temperature: {actual_temp:.1f}°C")
# Method 2: Manual calculation (for understanding)
voltage_hot = tc_k.temp_to_volt(hot_junction_temp)
voltage_cold = tc_k.temp_to_volt(cold_junction_temp)
expected_measurement = voltage_hot - voltage_cold
print(f"Expected measured voltage: {expected_measurement:.6f} V")
# Verify with built-in CJC function
calculated_temp = tc_k.volt_to_temp_with_cjc(expected_measurement, cold_junction_temp)
print(f"Calculated temperature: {calculated_temp:.1f}°C")
# Individual thermocouple leg analysis
tc_e = tc.get_thermocouple("E")
# Positive leg (Ni-Cr) calculations
pos_voltage = tc_e.temp_to_volt_pos_leg(300.0)
pos_seebeck = tc_e.temp_to_seebeck_pos_leg(300.0)
# Negative leg (Cu-Ni) calculations
neg_voltage = tc_e.temp_to_volt_neg_leg(300.0)
neg_seebeck = tc_e.temp_to_seebeck_neg_leg(300.0)
print(f"E-type at 300°C:")
print(f" Positive leg: {pos_voltage:.6f} V, {pos_seebeck:.3f} µV/K")
print(f" Negative leg: {neg_voltage:.6f} V, {neg_seebeck:.3f} µV/K")
print(f" Difference: {pos_voltage - neg_voltage:.6f} V")
```
### Working with Multiple Types
```python
import thermocouples as tc
# Compare different thermocouple types at the same temperature
temperature = 400.0 # °C
types = ["B", "E", "J", "K", "N", "R", "S", "T"]
print(f"Voltages at {temperature}°C:")
for tc_type in types:
if tc_type == "B" and temperature < 250:
continue # B-type has limited range at low temperatures
thermocouple = tc.get_thermocouple(tc_type)
voltage = thermocouple.temp_to_volt(temperature)
seebeck = thermocouple.temp_to_seebeck(temperature)
print(f" Type {tc_type}: {voltage:.6f} V (Seebeck: {seebeck:.1f} µV/K)")
```
## Architecture Overview
**Version 2.0** features a clean object-oriented architecture:
```
thermocouples/
├── base.py # Abstract base class with common calculation logic
├── registry.py # Factory functions for creating thermocouple instances
├── types/
│ ├── type_b_class.py # B-type thermocouple implementation
│ ├── type_e_class.py # E-type thermocouple implementation
│ ├── type_j_class.py # J-type thermocouple implementation
│ ├── type_k_class.py # K-type thermocouple implementation
│ ├── type_n_class.py # N-type thermocouple implementation
│ ├── type_r_class.py # R-type thermocouple implementation
│ ├── type_s_class.py # S-type thermocouple implementation
│ └── type_t_class.py # T-type thermocouple implementation
└── __init__.py # Public API with backward compatibility
```
Each thermocouple type inherits from the abstract `Thermocouple` base class, ensuring:
- **Consistent Interface**: All types support the same methods
- **Code Reuse**: Common calculation logic is shared
- **Type Safety**: Full Python type hints throughout
- **Extensibility**: Adding new types is straightforward
## API Reference
### Factory Functions
- `get_thermocouple(tc_type: str) -> Thermocouple`: Get a thermocouple instance
### Thermocouple Class Methods
Each thermocouple instance provides:
#### Core Conversion Methods
- `temp_to_volt(temperature: float) -> float`
- `volt_to_temp(voltage: float) -> float`
- `volt_to_temp_with_cjc(voltage: float, ref_temp: float) -> float`
- `temp_to_seebeck(temperature: float) -> float`
- `temp_to_dsdt(temperature: float) -> float`
#### Individual Leg Methods
- `temp_to_volt_pos_leg(temperature: float) -> float`
- `temp_to_volt_neg_leg(temperature: float) -> float`
- `temp_to_seebeck_pos_leg(temperature: float) -> float`
- `temp_to_seebeck_neg_leg(temperature: float) -> float`
#### Properties
- `name: str` - Thermocouple type identifier (e.g., "Type K")
## Requirements
- **Python**: 3.9+
- **Dependencies**: None (pure Python implementation)
## Accuracy and Validation
This library implements the official NIST ITS-90 thermocouple equations from **NIST Monograph 175** with rigorous precision:
- **Temperature-to-Voltage**: Polynomial evaluation using NIST coefficients
- **Voltage-to-Temperature**: Iterative solution with Newton-Raphson method
- **Individual Leg Calculations**: Separate positive and negative leg polynomials
- **Exponential Corrections**: Applied for specific types (K, N) where required
- **High Precision**: Maintains accuracy within NIST tolerance specifications
### Temperature Ranges by Type
| Type | Lower Limit | Upper Limit | Note |
|------|-------------|-------------|------|
| B | 0°C | 1820°C | Limited accuracy below 250°C |
| E | -270°C | 1000°C | Highest sensitivity of all types |
| J | -210°C | 1200°C | Iron oxidizes above 750°C in air |
| K | -270°C | 1372°C | Most common general-purpose type |
| N | -270°C | 1300°C | Improved drift characteristics vs. K |
| R | -50°C | 1768°C | Precious metal, high temperature |
| S | -50°C | 1768°C | Precious metal, similar to R |
| T | -270°C | 400°C | Excellent for cryogenic applications |
## Installation & Testing
### Install from PyPI
```bash
pip install thermocouples
```
### Run Built-in Tests
```bash
# Quick validation test
python -c "import thermocouples as tc; print('✓ Library loaded successfully')"
# Compare multiple types
python -c "
import thermocouples as tc
for t in ['K', 'J', 'T']:
tc_obj = tc.get_thermocouple(t)
v = tc_obj.temp_to_volt(100.0)
print(f'Type {t}: {v:.6f} V at 100°C')
"
```
## Migration Guide
**Version 2.1 uses a clean OOP-only API**. Here's how to use the new simplified interface:
```python
# Modern API (clean, professional)
import thermocouples as tc
tc_k = tc.get_thermocouple("K")
voltage = tc_k.temp_to_volt(100.0)
temperature = tc_k.volt_to_temp(0.004096)
```
The clean OOP approach offers:
- **Better Performance**: Instantiate once, use many times
- **Type Safety**: Full Python type hints
- **IDE Support**: Only relevant methods visible in autocomplete
- **Code Clarity**: Professional object-oriented interface
- **Clean Design**: Implementation details hidden from user view
## Contributors
- **Version 2.1 Architecture** - *Clean API with hidden implementation details*
## License
MIT License - see [LICENSE](LICENSE) file for details.
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request. Areas for contribution:
- Additional thermocouple types (C, G, M, etc.)
- Performance optimizations
- Enhanced documentation
- Test coverage improvements
## Disclaimer
⚠️ **Important**: While this library implements NIST-standard calculations with high precision, users are responsible for validating results for their specific applications. For critical measurements or safety-related applications, please refer directly to NIST Monograph 175 or conduct independent verification.
---
*If this library helped your project, please consider giving it a ⭐ on GitHub!*
Raw data
{
"_id": null,
"home_page": null,
"name": "thermocouples",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "thermocouple, temperature, voltage, nist, measurement, sensor, instrumentation, seebeck, cold-junction, oop, abstract-base-class, factory-pattern, polynomials",
"author": "RogerGdot",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/7e/d4/e709c2f0219d7f95bf43a482cde2990d7ae63f02da4a914e494df232ddd6/thermocouples-2.1.2.tar.gz",
"platform": null,
"description": "# Thermocouples\n\n[](https://badge.fury.io/py/thermocouples)\n[](https://pypi.org/project/thermocouples/)\n[](https://opensource.org/licenses/MIT)\n\nA comprehensive, high-accuracy thermocouple calculation library for Python with clean object-oriented architecture and professional API design that hides implementation details.\n\n## Features\n\n- **\ud83c\udfaf Temperature to Voltage Conversion**: Convert temperature (\u00b0C) to thermoelectric voltage (V)\n- **\ud83c\udf21\ufe0f Voltage to Temperature Conversion**: Convert voltage (V) to temperature (\u00b0C)\n- **\ud83d\udcca Seebeck Coefficient Calculation**: Get the Seebeck coefficient (\u00b5V/K) at any temperature\n- **\ud83d\udcc8 Temperature Derivative of Seebeck**: Calculate dSeebeck/dT (nV/K\u00b2) for advanced analysis\n- **\u2744\ufe0f Cold Junction Compensation**: Built-in `volt_to_temp_with_cjc()` method for reference junction temperature compensation\n- **\ud83d\udd2c Individual Thermocouple Leg Calculations**: \n - Voltage calculations for positive and negative legs separately\n - Seebeck coefficient calculations for positive and negative legs separately\n- **\ud83c\udfaf High Accuracy**: Based on NIST Monograph 175 polynomial coefficients\n- **\u2705 All Standard Types**: Supports B, E, J, K, N, R, S, and T type thermocouples\n- **\ud83d\udc0d Pure Python**: No external dependencies required\n- **\ud83c\udfd7\ufe0f Modern OOP Architecture**: Clean, maintainable object-oriented design\n- **\ud83e\uddea Well Tested**: Comprehensive test suite ensuring accuracy\n- **\ud83d\udcda Type Safe**: Full type hints for better IDE support\n\n## What's New in Version 2.1\n\n**\ud83e\uddf9 Professional API Cleanup:**\n- **Clean Interface**: All internal implementation details hidden with underscore prefixes\n- **IDE-Friendly**: Only user-relevant methods visible in autocomplete\n- **Simplified Functions**: Shortened method names (`temp_to_volt` vs `temperature_to_voltage`)\n- **Pure OOP Design**: Complete removal of legacy function-based API\n- **Professional Standards**: Following Python best practices for library design\n\n## Supported Thermocouple Types\n\n| Type | Temperature Range | Materials | Application |\n|------|------------------|-----------|-------------|\n| **B** | 0\u00b0C to 1820\u00b0C | Pt-30%Rh / Pt-6%Rh | Ultra-high temperature |\n| **E** | -270\u00b0C to 1000\u00b0C | Ni-Cr / Cu-Ni | Highest sensitivity |\n| **K** | -270\u00b0C to 1372\u00b0C | Ni-Cr / Ni-Al | Most popular, general purpose |\n| **N** | -270\u00b0C to 1300\u00b0C | Ni-Cr-Si / Ni-Si | Improved K-type |\n| **R** | -50\u00b0C to 1768\u00b0C | Pt-13%Rh / Pt | High temperature, precious metal |\n| **S** | -50\u00b0C to 1768\u00b0C | Pt-10%Rh / Pt | High temperature, precious metal |\n| **T** | -270\u00b0C to 400\u00b0C | Cu / Cu-Ni | Cryogenic applications |\n\n## Quick Start\n\n### Installation\n\n```bash\npip install thermocouples\n```\n\n### Basic Usage (New OOP API - Recommended)\n\n```python\nimport thermocouples as tc\n\n# Create thermocouple instance\ntc_k = tc.get_thermocouple(\"K\")\n\n# Temperature to voltage conversion\nvoltage = tc_k.temp_to_volt(100.0) # 4.096 mV at 100\u00b0C\nprint(f\"K-type at 100\u00b0C: {voltage:.3f} mV\")\n\n# Voltage to temperature conversion \ntemperature = tc_k.volt_to_temp(0.004096) # Back to ~100\u00b0C\nprint(f\"K-type at 4.096 mV: {temperature:.1f}\u00b0C\")\n\n# Seebeck coefficient calculation\nseebeck = tc_k.temp_to_seebeck(100.0) # \u00b5V/K\nprint(f\"Seebeck coefficient at 100\u00b0C: {seebeck:.1f} \u00b5V/K\")\n```\n\n### Advanced Usage\n\n```python\nimport thermocouples as tc\n\n# Get a thermocouple instance\ntc_k = tc.get_thermocouple(\"K\")\n\n# High-precision calculations\nvoltage = tc_k.temp_to_volt(200.5)\nseebeck = tc_k.temp_to_seebeck(200.5) # Seebeck coefficient\ndsdt = tc_k.temp_to_dsdt(200.5) # Temperature derivative\n\n# Cold junction compensation\nhot_junction_temp = 500.0 # \u00b0C\ncold_junction_temp = 25.0 # \u00b0C (room temperature)\n\n# Method 1: Built-in Cold Junction Compensation (Recommended)\nmeasured_voltage = 0.019665 # V (voltage measured by your instrument)\nactual_temp = tc_k.volt_to_temp_with_cjc(measured_voltage, cold_junction_temp)\nprint(f\"Actual temperature: {actual_temp:.1f}\u00b0C\")\n\n# Method 2: Manual calculation (for understanding)\nvoltage_hot = tc_k.temp_to_volt(hot_junction_temp)\nvoltage_cold = tc_k.temp_to_volt(cold_junction_temp)\nexpected_measurement = voltage_hot - voltage_cold\nprint(f\"Expected measured voltage: {expected_measurement:.6f} V\")\n\n# Verify with built-in CJC function\ncalculated_temp = tc_k.volt_to_temp_with_cjc(expected_measurement, cold_junction_temp)\nprint(f\"Calculated temperature: {calculated_temp:.1f}\u00b0C\")\n\n# Individual thermocouple leg analysis\ntc_e = tc.get_thermocouple(\"E\")\n\n# Positive leg (Ni-Cr) calculations\npos_voltage = tc_e.temp_to_volt_pos_leg(300.0)\npos_seebeck = tc_e.temp_to_seebeck_pos_leg(300.0)\n\n# Negative leg (Cu-Ni) calculations \nneg_voltage = tc_e.temp_to_volt_neg_leg(300.0)\nneg_seebeck = tc_e.temp_to_seebeck_neg_leg(300.0)\n\nprint(f\"E-type at 300\u00b0C:\")\nprint(f\" Positive leg: {pos_voltage:.6f} V, {pos_seebeck:.3f} \u00b5V/K\")\nprint(f\" Negative leg: {neg_voltage:.6f} V, {neg_seebeck:.3f} \u00b5V/K\")\nprint(f\" Difference: {pos_voltage - neg_voltage:.6f} V\")\n```\n\n### Working with Multiple Types\n\n```python\nimport thermocouples as tc\n\n# Compare different thermocouple types at the same temperature\ntemperature = 400.0 # \u00b0C\ntypes = [\"B\", \"E\", \"J\", \"K\", \"N\", \"R\", \"S\", \"T\"]\n\nprint(f\"Voltages at {temperature}\u00b0C:\")\nfor tc_type in types:\n if tc_type == \"B\" and temperature < 250:\n continue # B-type has limited range at low temperatures\n \n thermocouple = tc.get_thermocouple(tc_type)\n voltage = thermocouple.temp_to_volt(temperature)\n seebeck = thermocouple.temp_to_seebeck(temperature)\n print(f\" Type {tc_type}: {voltage:.6f} V (Seebeck: {seebeck:.1f} \u00b5V/K)\")\n```\n\n## Architecture Overview\n\n**Version 2.0** features a clean object-oriented architecture:\n\n```\nthermocouples/\n\u251c\u2500\u2500 base.py # Abstract base class with common calculation logic\n\u251c\u2500\u2500 registry.py # Factory functions for creating thermocouple instances \n\u251c\u2500\u2500 types/\n\u2502 \u251c\u2500\u2500 type_b_class.py # B-type thermocouple implementation\n\u2502 \u251c\u2500\u2500 type_e_class.py # E-type thermocouple implementation\n\u2502 \u251c\u2500\u2500 type_j_class.py # J-type thermocouple implementation\n\u2502 \u251c\u2500\u2500 type_k_class.py # K-type thermocouple implementation\n\u2502 \u251c\u2500\u2500 type_n_class.py # N-type thermocouple implementation\n\u2502 \u251c\u2500\u2500 type_r_class.py # R-type thermocouple implementation\n\u2502 \u251c\u2500\u2500 type_s_class.py # S-type thermocouple implementation\n\u2502 \u2514\u2500\u2500 type_t_class.py # T-type thermocouple implementation\n\u2514\u2500\u2500 __init__.py # Public API with backward compatibility\n```\n\nEach thermocouple type inherits from the abstract `Thermocouple` base class, ensuring:\n- **Consistent Interface**: All types support the same methods\n- **Code Reuse**: Common calculation logic is shared\n- **Type Safety**: Full Python type hints throughout\n- **Extensibility**: Adding new types is straightforward\n\n## API Reference\n\n### Factory Functions\n\n- `get_thermocouple(tc_type: str) -> Thermocouple`: Get a thermocouple instance\n\n### Thermocouple Class Methods\n\nEach thermocouple instance provides:\n\n#### Core Conversion Methods\n- `temp_to_volt(temperature: float) -> float`\n- `volt_to_temp(voltage: float) -> float`\n- `volt_to_temp_with_cjc(voltage: float, ref_temp: float) -> float`\n- `temp_to_seebeck(temperature: float) -> float` \n- `temp_to_dsdt(temperature: float) -> float`\n\n#### Individual Leg Methods\n- `temp_to_volt_pos_leg(temperature: float) -> float`\n- `temp_to_volt_neg_leg(temperature: float) -> float`\n- `temp_to_seebeck_pos_leg(temperature: float) -> float`\n- `temp_to_seebeck_neg_leg(temperature: float) -> float`\n\n#### Properties\n- `name: str` - Thermocouple type identifier (e.g., \"Type K\")\n\n## Requirements\n\n- **Python**: 3.9+\n- **Dependencies**: None (pure Python implementation)\n\n## Accuracy and Validation\n\nThis library implements the official NIST ITS-90 thermocouple equations from **NIST Monograph 175** with rigorous precision:\n\n- **Temperature-to-Voltage**: Polynomial evaluation using NIST coefficients\n- **Voltage-to-Temperature**: Iterative solution with Newton-Raphson method\n- **Individual Leg Calculations**: Separate positive and negative leg polynomials\n- **Exponential Corrections**: Applied for specific types (K, N) where required\n- **High Precision**: Maintains accuracy within NIST tolerance specifications\n\n### Temperature Ranges by Type\n\n| Type | Lower Limit | Upper Limit | Note |\n|------|-------------|-------------|------|\n| B | 0\u00b0C | 1820\u00b0C | Limited accuracy below 250\u00b0C |\n| E | -270\u00b0C | 1000\u00b0C | Highest sensitivity of all types |\n| J | -210\u00b0C | 1200\u00b0C | Iron oxidizes above 750\u00b0C in air |\n| K | -270\u00b0C | 1372\u00b0C | Most common general-purpose type |\n| N | -270\u00b0C | 1300\u00b0C | Improved drift characteristics vs. K |\n| R | -50\u00b0C | 1768\u00b0C | Precious metal, high temperature |\n| S | -50\u00b0C | 1768\u00b0C | Precious metal, similar to R |\n| T | -270\u00b0C | 400\u00b0C | Excellent for cryogenic applications |\n\n## Installation & Testing\n\n### Install from PyPI\n\n```bash\npip install thermocouples\n```\n\n### Run Built-in Tests\n\n```bash\n# Quick validation test\npython -c \"import thermocouples as tc; print('\u2713 Library loaded successfully')\"\n\n# Compare multiple types\npython -c \"\nimport thermocouples as tc\nfor t in ['K', 'J', 'T']:\n tc_obj = tc.get_thermocouple(t)\n v = tc_obj.temp_to_volt(100.0)\n print(f'Type {t}: {v:.6f} V at 100\u00b0C')\n\"\n```\n\n## Migration Guide\n\n**Version 2.1 uses a clean OOP-only API**. Here's how to use the new simplified interface:\n\n```python\n# Modern API (clean, professional)\nimport thermocouples as tc\ntc_k = tc.get_thermocouple(\"K\")\nvoltage = tc_k.temp_to_volt(100.0)\ntemperature = tc_k.volt_to_temp(0.004096)\n```\n\nThe clean OOP approach offers:\n- **Better Performance**: Instantiate once, use many times\n- **Type Safety**: Full Python type hints\n- **IDE Support**: Only relevant methods visible in autocomplete\n- **Code Clarity**: Professional object-oriented interface\n- **Clean Design**: Implementation details hidden from user view\n\n## Contributors\n\n- **Version 2.1 Architecture** - *Clean API with hidden implementation details*\n\n## License\n\nMIT License - see [LICENSE](LICENSE) file for details.\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request. Areas for contribution:\n- Additional thermocouple types (C, G, M, etc.)\n- Performance optimizations\n- Enhanced documentation\n- Test coverage improvements\n\n## Disclaimer\n\n\u26a0\ufe0f **Important**: While this library implements NIST-standard calculations with high precision, users are responsible for validating results for their specific applications. For critical measurements or safety-related applications, please refer directly to NIST Monograph 175 or conduct independent verification.\n\n---\n\n*If this library helped your project, please consider giving it a \u2b50 on GitHub!*\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Clean object-oriented thermocouple library with simplified API and hidden implementation details for professional use",
"version": "2.1.2",
"project_urls": {
"Bug Tracker": "https://github.com/RogerGdot/thermocouples/issues",
"Changelog": "https://github.com/RogerGdot/thermocouples/releases",
"Documentation": "https://github.com/RogerGdot/thermocouples#readme",
"Homepage": "https://github.com/RogerGdot/thermocouples",
"Repository": "https://github.com/RogerGdot/thermocouples.git",
"Source Code": "https://github.com/RogerGdot/thermocouples"
},
"split_keywords": [
"thermocouple",
" temperature",
" voltage",
" nist",
" measurement",
" sensor",
" instrumentation",
" seebeck",
" cold-junction",
" oop",
" abstract-base-class",
" factory-pattern",
" polynomials"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "d25ab85dbe11bb34452cd5213f1d41c4a241c52dbeb2fc93945eb15d3e6641e4",
"md5": "d6ec7373fae5ce2f565924640ad5564d",
"sha256": "80a008c19349175d217b3532b376baf54898b98895cba6fe5b12c4335831e57e"
},
"downloads": -1,
"filename": "thermocouples-2.1.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d6ec7373fae5ce2f565924640ad5564d",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 35718,
"upload_time": "2025-08-15T22:46:45",
"upload_time_iso_8601": "2025-08-15T22:46:45.481452Z",
"url": "https://files.pythonhosted.org/packages/d2/5a/b85dbe11bb34452cd5213f1d41c4a241c52dbeb2fc93945eb15d3e6641e4/thermocouples-2.1.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "7ed4e709c2f0219d7f95bf43a482cde2990d7ae63f02da4a914e494df232ddd6",
"md5": "75b7d4f9c103996ccdc10e3aa7f7ac87",
"sha256": "dee564ba7710c6d1e6726d582814c76ac6f00f7fc7b69b95522ea4b525cef443"
},
"downloads": -1,
"filename": "thermocouples-2.1.2.tar.gz",
"has_sig": false,
"md5_digest": "75b7d4f9c103996ccdc10e3aa7f7ac87",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 30986,
"upload_time": "2025-08-15T22:46:46",
"upload_time_iso_8601": "2025-08-15T22:46:46.775414Z",
"url": "https://files.pythonhosted.org/packages/7e/d4/e709c2f0219d7f95bf43a482cde2990d7ae63f02da4a914e494df232ddd6/thermocouples-2.1.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-15 22:46:46",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "RogerGdot",
"github_project": "thermocouples",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "thermocouples"
}