Bootstrapped

This commit is contained in:
Chris Bomar 2025-04-17 07:36:23 -05:00
parent 74e4135f00
commit 9fbdad45a8
4 changed files with 92 additions and 0 deletions

32
pyproject.toml Normal file
View File

@ -0,0 +1,32 @@
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[project]
name = "pyhld"
version = "0.1.0"
description = "Fiber to the Home High Level Design CLI Tool"
readme = "README.md"
requires-python = ">=3.8"
license = "MIT"
authors = [
{ name = "Your Name", email = "your.email@example.com" }
]
classifiers = [
"Development Status :: 3 - Alpha",
"Intended Audience :: Telecommunications Industry",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
]
dependencies = [
"click>=8.1.8",
"rich>=14.0.0",
]
[project.scripts]
pyhld = "pyhld.cli:main"
[tool.hatch.build.targets.wheel]
packages = ["src/pyhld"]

10
setup.cfg Normal file
View File

@ -0,0 +1,10 @@
[metadata]
license_files = LICENSE
[options]
package_dir=
=src
packages=find:
[options.packages.find]
where=src

7
src/pyhld/__init__.py Normal file
View File

@ -0,0 +1,7 @@
"""
PyHLD - Python Fiber to the Home High Level Design Tool
"""
__version__ = "0.1.0"
__author__ = "Chris Bomar"
__email__ = ""

43
src/pyhld/cli.py Normal file
View File

@ -0,0 +1,43 @@
"""Command line interface for PyHLD."""
import click
from rich.console import Console
from rich.panel import Panel
from . import __version__
console = Console()
@click.group()
@click.version_option(version=__version__)
def main():
"""PyHLD - Fiber to the Home High Level Design CLI Tool."""
pass
@main.command()
@click.option('--input-file', '-i', type=click.Path(exists=True), help='Input data file')
@click.option('--output', '-o', type=click.Path(), help='Output file path')
def design(input_file, output):
"""Create a high-level FTTH design."""
console.print(Panel.fit("🌐 Creating FTTH Design", title="PyHLD"))
console.print(f"Input file: {input_file}")
console.print(f"Output will be saved to: {output}")
@main.command()
@click.option('--homes', '-h', type=int, help='Number of homes to be served')
@click.option('--area', '-a', type=float, help='Service area in square kilometers')
def calculate(homes, area):
"""Calculate basic FTTH metrics."""
console.print(Panel.fit("📊 Calculating FTTH Metrics", title="PyHLD"))
if homes and area:
density = homes / area
console.print(f"Homes: {homes}")
console.print(f"Area: {area} km²")
console.print(f"Density: {density:.2f} homes/km²")
@main.command()
def validate():
"""Validate design parameters and constraints."""
console.print(Panel.fit("✅ Validating Design", title="PyHLD"))
# Add validation logic here
if __name__ == '__main__':
main()