Catalog PyPI
Back to packageRELEASE DETAILS

0.3.0

PyPI

aeclib

Open-source computational logic engine for global building codes and standards.

Published22 Jun 2026
Direct dependencies0
Transitive dependenciesNot calculated

README

Version 0.3.0 documentation

aeclib: Building Code Compliance Library

Open-source automated code compliance building codes and standards.

aeclib translates building code provisions into executable and testable logic.

Installation

pip install aeclib

Intent

The goal of aeclib is to provide a unified "Logic Layer" for the AEC industry to support automated compliance and computational design.

Usage

aeclib is designed as a Stateless Logic Layer. It provides the atomic building blocks of architectural compliance without dictating a specific data schema.

Atomic Logic

Each function in aeclib maps to a specific engineering or code requirement. You are responsible for mapping your own data (JSON, BIM, or Database) to the function's parameters.

Compositional Compliance

The library is designed to be composed into your own application logic. Below is an example of how a user might bring their own JSON design data and map it to a custom Python class to run a specific chapter's compliance check:

{
  "space_id": "RM-101",
  "function_type": "business",
  "gross_area": 1500.0,
  "net_area": 1200.0,
  "design_occupancy_count": 12
}
from aeclib.occupancy import validate_occupant_load_without_fixed_seating, validate_increased_occupant_load

class OccupancyValidator:
    def check_space_occupancy(self, data: dict):
        # 1. Check required minimum occupant load (Section 1004.5)
        is_load_valid = validate_occupant_load_without_fixed_seating(
            function_type=data["function_type"],
            gross_area=data["gross_area"],
            net_area=data["net_area"],
            design_occupancy_count=data["design_occupancy_count"]
        )

        # 2. Check maximum density limit (Section 1004.5.1)
        is_density_valid = validate_increased_occupant_load(
            area=data["gross_area"],
            occupant_count=data["design_occupancy_count"]
        )

        return is_load_valid and is_density_valid

Expected Output

When a design fact fails to comply, the library will return FAIL and log a detailed warning:

WARNING:aeclib:[FAIL] Design occupancy (35) is less than required minimum of 40 for educational_classroom (net area: 800.0, factor: 20).

When a design is compliant, the function returns PASS.

License

Licensed under the Apache License 2.0.

Stay Updated

You can get project updates on the architecture and design decisions behind aeclib on Substack.

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 0

Native requirements
0 direct targetsNot calculated transitive count
No declared dependencies in this collected response

Declarations describe requirements; they are not a resolved dependency graph.

Distribution files

2 collected
aeclib-0.3.0-py3-none-any.whl

bdist_wheel · 43.45 KB · Python py3

Source file
aeclib-0.3.0.tar.gz

sdist · 32.83 KB · Python source

Source file

Repository

PENDING
aeclib/aeclib

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 20:09 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:9ab16ae830cc513dae76a037fc948cc2e4e114d5e7a97aace7590b609f91c3db

Other collected versions

View all collected versions →