|
|
--- |
|
|
license: apache-2.0 |
|
|
tags: |
|
|
- height-conversion |
|
|
- utility |
|
|
- measurement |
|
|
- unit-conversion |
|
|
language: |
|
|
- en |
|
|
- vi |
|
|
--- |
|
|
|
|
|
# Height Conversion Tool |
|
|
|
|
|
A simple and efficient tool for converting height measurements between different units (feet/inches, centimeters, meters). |
|
|
|
|
|
## Model Overview |
|
|
|
|
|
This tool provides accurate height conversions between various measurement systems commonly used around the world. It supports bidirectional conversions and handles multiple input formats. |
|
|
|
|
|
## Features |
|
|
|
|
|
- **Multiple Unit Support**: Convert between feet/inches, centimeters, and meters |
|
|
- **Flexible Input**: Accepts various input formats (e.g., "5'10\"", "178 cm", "1.78 m") |
|
|
- **High Accuracy**: Maintains precision across conversions |
|
|
- **Easy to Use**: Simple API with clear documentation |
|
|
- **Bilingual**: Supports English and Vietnamese |
|
|
|
|
|
## Supported Conversions |
|
|
|
|
|
| From | To | Example | |
|
|
|------|-----|---------| |
|
|
| Feet & Inches | Centimeters | 5'10" → 177.8 cm | |
|
|
| Centimeters | Feet & Inches | 180 cm → 5'11" | |
|
|
| Meters | Feet & Inches | 1.75 m → 5'9" | |
|
|
| Feet & Inches | Meters | 6'0" → 1.83 m | |
|
|
| Centimeters | Meters | 170 cm → 1.7 m | |
|
|
|
|
|
## Installation |
|
|
|
|
|
```bash |
|
|
pip install height-conversion-tool |
|
|
``` |
|
|
|
|
|
Or clone this repository: |
|
|
|
|
|
```bash |
|
|
git clone https://huggingface.co/NuBest/height-conversion-tool |
|
|
cd height-conversion-tool |
|
|
pip install -r requirements.txt |
|
|
``` |
|
|
|
|
|
## Quick Start |
|
|
|
|
|
### Python Usage |
|
|
|
|
|
```python |
|
|
from height_converter import HeightConverter |
|
|
|
|
|
# Initialize converter |
|
|
converter = HeightConverter() |
|
|
|
|
|
# Convert from feet/inches to centimeters |
|
|
height_cm = converter.feet_to_cm(5, 10) # 5 feet 10 inches |
|
|
print(f"Height: {height_cm} cm") # Output: Height: 177.8 cm |
|
|
|
|
|
# Convert from centimeters to feet/inches |
|
|
feet, inches = converter.cm_to_feet(180) |
|
|
print(f"Height: {feet}'{inches}\"") # Output: Height: 5'11" |
|
|
|
|
|
# String input format |
|
|
result = converter.convert("5'10\"", to_unit="cm") |
|
|
print(result) # Output: 177.8 cm |
|
|
``` |
|
|
|
|
|
### Command Line Usage |
|
|
|
|
|
```bash |
|
|
# Convert height |
|
|
python height_converter.py --input "5'10\"" --output cm |
|
|
|
|
|
# Multiple conversions |
|
|
python height_converter.py --input 180 --from cm --to feet |
|
|
``` |
|
|
|
|
|
## API Reference |
|
|
|
|
|
### HeightConverter Class |
|
|
|
|
|
#### Methods |
|
|
|
|
|
**`feet_to_cm(feet: int, inches: float = 0) -> float`** |
|
|
- Converts feet and inches to centimeters |
|
|
- Parameters: |
|
|
- `feet`: Number of feet |
|
|
- `inches`: Number of inches (optional, default: 0) |
|
|
- Returns: Height in centimeters |
|
|
|
|
|
**`cm_to_feet(cm: float) -> tuple[int, float]`** |
|
|
- Converts centimeters to feet and inches |
|
|
- Parameters: |
|
|
- `cm`: Height in centimeters |
|
|
- Returns: Tuple of (feet, inches) |
|
|
|
|
|
**`meters_to_feet(meters: float) -> tuple[int, float]`** |
|
|
- Converts meters to feet and inches |
|
|
- Parameters: |
|
|
- `meters`: Height in meters |
|
|
- Returns: Tuple of (feet, inches) |
|
|
|
|
|
**`convert(input_str: str, to_unit: str = "cm") -> str`** |
|
|
- Flexible conversion from string input |
|
|
- Parameters: |
|
|
- `input_str`: Height string (e.g., "5'10\"", "180cm", "1.8m") |
|
|
- `to_unit`: Target unit ("cm", "feet", "meters") |
|
|
- Returns: Converted height as string |
|
|
|
|
|
## Use Cases |
|
|
|
|
|
- **Healthcare**: Converting patient height measurements between metric and imperial systems |
|
|
- **Fitness Apps**: Standardizing height inputs across different regions |
|
|
- **E-commerce**: Converting size charts for international customers |
|
|
- **Travel Apps**: Helping users understand height requirements in different countries |
|
|
- **Education**: Teaching measurement conversions |
|
|
|
|
|
## Technical Details |
|
|
|
|
|
### Conversion Formulas |
|
|
|
|
|
- 1 inch = 2.54 cm |
|
|
- 1 foot = 12 inches = 30.48 cm |
|
|
- 1 meter = 100 cm = 3.28084 feet |
|
|
|
|
|
### Accuracy |
|
|
|
|
|
The tool maintains precision up to 2 decimal places for centimeters and meters, and up to 1 decimal place for inches. |
|
|
|
|
|
## Examples |
|
|
|
|
|
### Example 1: Basic Conversion |
|
|
|
|
|
```python |
|
|
from height_converter import HeightConverter |
|
|
|
|
|
converter = HeightConverter() |
|
|
|
|
|
# Convert 6 feet to centimeters |
|
|
result = converter.feet_to_cm(6, 0) |
|
|
print(f"6 feet = {result} cm") # Output: 6 feet = 182.88 cm |
|
|
``` |
|
|
|
|
|
### Example 2: Batch Conversion |
|
|
|
|
|
```python |
|
|
heights_cm = [150, 160, 170, 180, 190] |
|
|
|
|
|
for height in heights_cm: |
|
|
feet, inches = converter.cm_to_feet(height) |
|
|
print(f"{height} cm = {feet}'{inches:.1f}\"") |
|
|
``` |
|
|
|
|
|
Output: |
|
|
``` |
|
|
150 cm = 4'11.1" |
|
|
160 cm = 5'3.0" |
|
|
170 cm = 5'7.0" |
|
|
180 cm = 5'10.9" |
|
|
190 cm = 6'2.8" |
|
|
``` |
|
|
|
|
|
### Example 3: Web Integration |
|
|
|
|
|
```python |
|
|
from flask import Flask, request, jsonify |
|
|
from height_converter import HeightConverter |
|
|
|
|
|
app = Flask(__name__) |
|
|
converter = HeightConverter() |
|
|
|
|
|
@app.route('/convert', methods=['POST']) |
|
|
def convert_height(): |
|
|
data = request.json |
|
|
input_height = data.get('height') |
|
|
to_unit = data.get('to_unit', 'cm') |
|
|
|
|
|
result = converter.convert(input_height, to_unit) |
|
|
return jsonify({'result': result}) |
|
|
|
|
|
if __name__ == '__main__': |
|
|
app.run(debug=True) |
|
|
``` |
|
|
|
|
|
## Testing |
|
|
|
|
|
Run the test suite: |
|
|
|
|
|
```bash |
|
|
python -m pytest tests/ |
|
|
``` |
|
|
|
|
|
Run specific tests: |
|
|
|
|
|
```bash |
|
|
python -m pytest tests/test_converter.py -v |
|
|
``` |
|
|
|
|
|
## Contributing |
|
|
|
|
|
We welcome contributions! Please follow these steps: |
|
|
|
|
|
1. Fork the repository |
|
|
2. Create a feature branch (`git checkout -b feature/amazing-feature`) |
|
|
3. Commit your changes (`git commit -m 'Add some amazing feature'`) |
|
|
4. Push to the branch (`git push origin feature/amazing-feature`) |
|
|
5. Open a Pull Request |
|
|
|
|
|
### Development Setup |
|
|
|
|
|
```bash |
|
|
# Clone repository |
|
|
git clone https://huggingface.co/NuBest/height-conversion-tool |
|
|
cd height-conversion-tool |
|
|
|
|
|
# Create virtual environment |
|
|
python -m venv venv |
|
|
source venv/bin/activate # On Windows: venv\Scripts\activate |
|
|
|
|
|
# Install development dependencies |
|
|
pip install -r requirements-dev.txt |
|
|
|
|
|
# Run tests |
|
|
pytest |
|
|
``` |
|
|
|
|
|
## License |
|
|
|
|
|
This project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details. |
|
|
|
|
|
## Citation |
|
|
|
|
|
If you use this tool in your research or project, please cite: |
|
|
|
|
|
```bibtex |
|
|
@software{height_conversion_tool, |
|
|
author = {NuBest}, |
|
|
title = {Height Conversion Tool}, |
|
|
year = {2025}, |
|
|
url = {https://huggingface.co/NuBest/height-conversion-tool} |
|
|
} |
|
|
``` |
|
|
|
|
|
## Support |
|
|
|
|
|
- **Issues**: [GitHub Issues](https://huggingface.co/NuBest/height-conversion-tool/discussions) |
|
|
- **Discussions**: [Community Forum](https://huggingface.co/NuBest/height-conversion-tool/discussions) |
|
|
- **Email**: support@nubest.com |
|
|
- **Website**: https://www.nubest.com/ |
|
|
|
|
|
## Changelog |
|
|
|
|
|
### Version 1.0.0 (2025-01-29) |
|
|
- Initial release |
|
|
- Support for feet/inches, centimeters, and meters |
|
|
- Command line interface |
|
|
- Python API |
|
|
- Comprehensive test suite |
|
|
|
|
|
## Acknowledgments |
|
|
|
|
|
- Built with Python 3.8+ |
|
|
- Inspired by the need for accurate height conversions in international applications |
|
|
- Special thanks to the Hugging Face community |
|
|
|
|
|
## FAQ |
|
|
|
|
|
**Q: What's the maximum height that can be converted?** |
|
|
A: The tool supports heights up to 999 cm (32'9") to cover all practical use cases. |
|
|
|
|
|
**Q: How accurate are the conversions?** |
|
|
A: Conversions maintain precision up to 2 decimal places, which is sufficient for all practical purposes. |
|
|
|
|
|
**Q: Can I use this in a commercial application?** |
|
|
A: Yes, the Apache 2.0 license allows commercial use with proper attribution. |
|
|
|
|
|
**Q: Does it support other units like yards or kilometers?** |
|
|
A: Currently, the tool focuses on the most commonly used units (feet/inches, cm, meters). Additional units may be added in future versions. |
|
|
|
|
|
**Q: How do I handle invalid input?** |
|
|
A: The tool includes input validation and raises clear error messages for invalid inputs. |
|
|
|
|
|
--- |
|
|
|
|
|
Made with ❤️ by NuBest Team |
|
|
|