"""
py-concrete-calc
~~~~~~~~~~~~~~~~

Concrete volume, bag, material, and cost calculations for construction projects.

Full-featured online calculators at https://www.slabcalc.co

Basic usage::

    from concrete_calc import ConcreteCalculator

    calc = ConcreteCalculator()
    result = calc.estimate(length=20, width=10, thickness=0.5)
    print(result)

"""

__version__ = "1.0.1"

from concrete_calc.shapes import (
    slab,
    cylinder,
    footing,
    stairs,
    curb,
    hollow_cylinder,
    circular_slab,
    triangular_prism,
    grade_beam,
    wall,
)
from concrete_calc.units import (
    cubic_feet_to_yards,
    cubic_yards_to_cubic_feet,
    cubic_feet_to_meters,
    cubic_meters_to_yards,
    inches_to_feet,
    cm_to_meters,
)
from concrete_calc.bags import bag_estimate, bags_from_yards
from concrete_calc.cost import ready_mix_cost, bag_cost
from concrete_calc.materials import rebar_estimate, wire_mesh_estimate, form_lumber_estimate
from concrete_calc.regional_costs import get_regional_price, list_regions
from concrete_calc.export import to_dict, to_json, to_csv
from concrete_calc.estimate import estimate, EstimateResult, ConcreteCalculator

__all__ = [
    # Shapes
    "slab",
    "cylinder",
    "footing",
    "stairs",
    "curb",
    "hollow_cylinder",
    "circular_slab",
    "triangular_prism",
    "grade_beam",
    "wall",
    # Units
    "cubic_feet_to_yards",
    "cubic_yards_to_cubic_feet",
    "cubic_feet_to_meters",
    "cubic_meters_to_yards",
    "inches_to_feet",
    "cm_to_meters",
    # Bags
    "bag_estimate",
    "bags_from_yards",
    # Cost
    "ready_mix_cost",
    "bag_cost",
    # Materials
    "rebar_estimate",
    "wire_mesh_estimate",
    "form_lumber_estimate",
    # Regional
    "get_regional_price",
    "list_regions",
    # Export
    "to_dict",
    "to_json",
    "to_csv",
    # Estimate
    "estimate",
    "EstimateResult",
    "ConcreteCalculator",
]
