Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

merge develop into main for alpha release #197

Merged
merged 81 commits into from
Jan 4, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
685cd5b
Fix codecov
haneslinger Oct 10, 2022
be5ac7e
check locally first for libraries
TShapinsky Oct 11, 2022
fb34fc7
first pass packaged libraries
TShapinsky Oct 12, 2022
98e32a8
remove library which isn't there
TShapinsky Oct 12, 2022
690cccc
add override flag to force reloading of existing library
gtfierro Nov 15, 2022
fc17ef9
fixing some tests
gtfierro Nov 15, 2022
687603a
implement load if not exist
gtfierro Nov 15, 2022
6abac34
fix type annotation
gtfierro Nov 15, 2022
4c7bb13
fixing template resolution
gtfierro Nov 15, 2022
804406d
Update buildingmotif/dataclasses/library.py
gtfierro Nov 21, 2022
ff58a97
add LibraryAlreadyExistsException
TShapinsky Nov 22, 2022
749d1aa
override to overwrite
TShapinsky Nov 22, 2022
2915ff9
add library_exists function
TShapinsky Nov 28, 2022
28a98e4
merge create and create_or_load
TShapinsky Nov 29, 2022
c1943da
remove load_if_exists
TShapinsky Dec 13, 2022
447891f
Merge branch 'develop' of github.com:NREL/BuildingMOTIF into gtf-easi…
TShapinsky Dec 13, 2022
dd16885
remove merge artifact
TShapinsky Dec 13, 2022
8a269ba
Merge branch 'gtf-easier-library-loading' of github.com:NREL/Building…
TShapinsky Dec 13, 2022
3071f3f
update to parity with better library loading and fix print statements
TShapinsky Dec 13, 2022
601345d
Merge branch 'develop' into Fix-code-cov
MatthewSteen Dec 14, 2022
54c29d7
respond to PR comments
TShapinsky Dec 14, 2022
cd6c83d
fix tests looking for constraints
TShapinsky Dec 14, 2022
36a8fc0
remove documentation for removed parameter
TShapinsky Dec 14, 2022
5cfd216
Merge branch 'develop' into Fix-code-cov
MatthewSteen Dec 15, 2022
76066ee
Update codecov actions
haneslinger Dec 15, 2022
c676e5a
Merge pull request #141 from NREL/Fix-code-cov
haneslinger Dec 15, 2022
f97c404
Merge branch 'develop' into gtf-easier-library-loading
TShapinsky Dec 16, 2022
c6416d3
update pyproject.toml for pypi
MatthewSteen Dec 16, 2022
ff42d21
resolve conversations
TShapinsky Dec 16, 2022
d68936b
update pyproject.toml for pypi
MatthewSteen Dec 16, 2022
012f6c4
add template workflow for continuous deployment...
MatthewSteen Dec 16, 2022
17f55be
use minor version instead of patch, uncomment publish to pypi
MatthewSteen Dec 16, 2022
32ddbc3
Merge branch 'gtf-easier-library-loading' of github.com:NREL/Building…
TShapinsky Dec 16, 2022
4091574
update gitignore
MatthewSteen Dec 16, 2022
4815ea3
append alpha
MatthewSteen Dec 16, 2022
72d8de6
Merge branch 'develop' into add/gha-pypi
MatthewSteen Dec 16, 2022
a11d20d
remove setup.py
MatthewSteen Dec 16, 2022
db3eb4a
Merge branch 'develop' into add/gha-pypi
MatthewSteen Dec 16, 2022
bf5c9dc
change builtin to libraries
TShapinsky Dec 16, 2022
e3d94a7
update workflow
MatthewSteen Dec 18, 2022
16a7443
update workflow
MatthewSteen Dec 18, 2022
3fbcfb2
update workflow
MatthewSteen Dec 18, 2022
b76df9d
update workflow
MatthewSteen Dec 18, 2022
1c0c88e
debug workflow
MatthewSteen Dec 18, 2022
62df3b5
debug workflow
MatthewSteen Dec 18, 2022
561b13e
trying out the poetry actions
gtfierro Dec 19, 2022
3d6cabb
explicit python version
gtfierro Dec 19, 2022
73b4149
Merge pull request #193 from NREL/fix-cd-workflow
MatthewSteen Dec 19, 2022
b7136b5
fix test pypi token
MatthewSteen Dec 19, 2022
32d571f
cleanup publish job
MatthewSteen Dec 19, 2022
41827aa
cleanup build job
MatthewSteen Dec 19, 2022
ad78943
cleanup action versions, try up/dn load artifact
MatthewSteen Dec 19, 2022
8b87fd1
fix path
MatthewSteen Dec 19, 2022
298f190
keeping it simple
MatthewSteen Dec 19, 2022
d5c2b9f
needs build
MatthewSteen Dec 19, 2022
e00b814
try snok/install-poetry action
MatthewSteen Dec 19, 2022
5d4dfe5
try using .python-version file
MatthewSteen Dec 21, 2022
289e22e
mv .python-version to top
MatthewSteen Dec 21, 2022
c59c6e0
rm .python-version
MatthewSteen Dec 21, 2022
b3788a1
typo
MatthewSteen Dec 21, 2022
c920ac2
Update buildingmotif/dataclasses/library.py
MatthewSteen Dec 21, 2022
329a504
Update buildingmotif/dataclasses/library.py
MatthewSteen Dec 21, 2022
424d1d5
Update buildingmotif/dataclasses/library.py
MatthewSteen Dec 21, 2022
e68252c
Merge pull request #143 from NREL/package_libraries
MatthewSteen Dec 21, 2022
0465d89
Merge branch 'develop' into gtf-easier-library-loading
MatthewSteen Dec 21, 2022
251a6e3
rename _load_from_ontology_graph to _load_from_ontology
MatthewSteen Dec 21, 2022
ee62f1a
Merge pull request #168 from NREL/gtf-easier-library-loading
MatthewSteen Dec 21, 2022
c3203c5
Merge branch 'develop' into add/gha-pypi
MatthewSteen Dec 21, 2022
d90ec84
add warnings to tutorials for libraries loaded from outside the package
MatthewSteen Dec 22, 2022
b5d0b7f
update READMEs with PyPi badges, Avijit's original text, and new doc …
MatthewSteen Dec 22, 2022
fc94a06
change How-to Guides to simply Guides
MatthewSteen Dec 22, 2022
ebea1b8
Merge pull request #196 from NREL/package_libraries_docs
MatthewSteen Dec 23, 2022
c3d2d28
Merge branch 'develop' into add/gha-pypi
MatthewSteen Dec 23, 2022
b69dcd8
remove netifaces dependency
MatthewSteen Dec 26, 2022
73e17a9
conditional install of netifaces
gtfierro Dec 27, 2022
92a3cc5
try to update poetry.lock?
gtfierro Dec 27, 2022
9e81079
decrease version for PyPI (Test PyPI will fail)
MatthewSteen Dec 28, 2022
414f311
Merge pull request #192 from NREL/add/gha-pypi
MatthewSteen Dec 28, 2022
55c38ab
Merge branch 'main' into develop
MatthewSteen Dec 29, 2022
8140a15
update cd.yml
MatthewSteen Jan 4, 2023
25a234c
update cd.yml
MatthewSteen Jan 4, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .coveragerc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[run]
omit =
tests/*
setup.py
53 changes: 53 additions & 0 deletions .github/workflows/cd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: continuous deployment

on:
pull_request:
branches:
- develop
- main
release:

jobs:

build:
name: build distribution for Python
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.8', '3.9', '3.10']
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- uses: snok/install-poetry@v1

- name: build
run: poetry build

publish:
name: publish distribution
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
- uses: snok/install-poetry@v1

- name: build
run: poetry build

- name: publish distribution 📦 to Test PyPI
if: ${{ github.base_ref == 'main' }}
uses: pypa/gh-action-pypi-publish@release/v1
with:
password: ${{ secrets.TEST_PYPI_API_TOKEN }}
repository_url: https://test.pypi.org/legacy/
skip_existing: true

- name: publish distribution 📦 to PyPI
if: startsWith(github.ref, 'refs/tags')
uses: pypa/gh-action-pypi-publish@release/v1
with:
python_version: ${{ matrix.python-version }}
pypi_token: ${{ secrets.PYPI_API_TOKEN }}
5 changes: 4 additions & 1 deletion .github/workflows/push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,10 @@ jobs:
run: poetry run pytest tests/integration

- name: Codecov
uses: codecov/codecov-action@v2.1.0
uses: codecov/codecov-action@v3.1.1
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./coverage.xml

style:
runs-on: ubuntu-latest
Expand Down
30 changes: 23 additions & 7 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,25 +5,41 @@



# Distribution / packaging
dist/



# Unit test / coverage reports
.coverage
coverage.xml



# Jupyter Book documentation
# documentation
docs/_build/
docs/reference/apidoc/_autosummary



# Jupyter Notebook
*.ipynb_checkpoints
*.db

# local configs
configs.py

# logs
**/BuildingMOTIF.log

buildingmotif-app/node_modules/
# Environments
# .env
.venv
# env/
# venv/
# ENV/
# env.bak/
# venv.bak/



# project
configs.py
buildingmotif-app/node_modules/
**/BuildingMOTIF.log
*.db
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@ test:
format:
poetry run black .
poetry run isort .
poetry run pylama
poetry run pylama buildingmotif tests migrations buildingmotif-app
poetry run mypy buildingmotif/*.py tests/*.py migrations/*.py
31 changes: 16 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,29 @@

[![codecov](https://codecov.io/gh/NREL/BuildingMOTIF/branch/main/graph/badge.svg?token=HAFSYH45NX)](https://codecov.io/gh/NREL/BuildingMOTIF)
[![Jupyter Book Badge](https://jupyterbook.org/badge.svg)](https://nrel.github.io/BuildingMOTIF/)
![PyPI](https://img.shields.io/pypi/v/buildingmotif)
![PyPI - Downloads](https://img.shields.io/pypi/dm/buildingmotif)

> *Enabling the enabling technology of semantic interoperability.*

Semantic Interoperability in buildings through standardized semantic metadata is crucial to unlocking the value of the abundant and diverse networked data in buildings, avoiding subsequent data incompatibility/interoperability issues, and paving the way for advanced building technologies like Automated Fault Detection and Diagnostics (AFDD), real-time energy optimization, other energy management information systems ([EMIS](https://www.energy.gov/eere/femp/what-are-energy-management-information-systems)), improved HVAC controls, and grid-interactive energy efficient building ([GEB](https://www.energy.gov/eere/buildings/grid-interactive-efficient-buildings)) technologies, all of which are needed to fully de-carbonize buildings. Utilizing the capabilities of [Semantic Web](https://www.w3.org/standards/semanticweb/), it is possible to standardize building metadata in structured, expressive, and machine-readable ways, but at the same time it is very important to make it easier to implement for field practitioners without advanced knowledge in computer science.
Semantic Interoperability in buildings through standardized semantic metadata is crucial in unlocking the value of the abundant and diverse networked data in buildings, avoiding subsequent data incompatibility/interoperability issues, and paving the way for advanced building technologies like Fault Detection and Diagnostics (FDD), real-time energy optimization, other energy management information systems ([EMIS](https://www.energy.gov/eere/femp/what-are-energy-management-information-systems)), improved HVAC controls, and grid-integrated energy efficient building ([GEB](https://www.energy.gov/eere/buildings/grid-interactive-efficient-buildings)) technologies, all of which are needed to fully de-carbonize buildings.

***Building Metadata OnTology Interoperability Framework (BuildingMOTIF)*** bridges that gap between theory and practice, by offering a toolset for building metadata creation, storage, visualization, and validation. It is offered in the form of an SDK with easy-to-use APIs that abstract the underlying complexities of [RDF](https://www.w3.org/RDF/) graphs, database management, [SHACL](https://www.w3.org/TR/shacl/) validation, and interoperability between different metadata schemas/ontologies. It also supports connectors for easier integration with existing metadata sources (e.g., Building Automation System data, design models, existing metadata models, etc.), which are available at different phases of the building life-cycle.
Utilizing the capabilities of [Semantic Web](https://www.w3.org/standards/semanticweb/), it is possible to standardize building metadata in structured, expressive, and machine-readable way, but at the same time it is very important to make it easier to implement for field practitioners without advanced knowledge in computer science. ***Building Metadata OnTology Interoperability Framework (BuildingMOTIF)*** bridges that gap between theory and practice, by offering a toolset for building metadata creation, storage, visualization, and validation. It is offered in the form of a SDK with easy-to-use APIs, which abstract the underlying complexities of [RDF](https://www.w3.org/RDF/) graphs, database management, [SHACL](https://www.w3.org/TR/shacl/) validation, and interoperability between different metadata schemas/ontologies. It also supports connectors for easier integration with existing metadata sources (e.g., Building Automation System data, design models, existing metadata models, etc.) which are available at different phases of the building life-cycle.

The objectives of the ***BuildingMOTIF*** toolset are the following:
1. lower costs, reduce installation time, and improve delivered quality of building controls and services for building owners and occupants
2. enable a simpler and more easily verifiable procurement process for products and services for building managers
3. open new business opportunities for service providers, by removing knowledge barriers for parties implementing building controls and services
The objectives of the ***BuildingMOTIF*** toolset are to (1) lower costs, reduce installation time, and improve delivered quality of building controls and services for building owners and occupants, (2) enable a simpler and more easily verifiable procurement process for products and services for building managers, and (3) open new business opportunities for service providers, by removing knowledge barriers for parties implementing building controls and services.

Currently, ***BuildingMOTIF*** is planned to support the [Brick Schema](https://brickschema.org/), [Project Haystack](https://project-haystack.org/), and the proposed [ASHRAE Standard 223P](https://www.ashrae.org/about/news/2018/ashrae-s-bacnet-committee-project-haystack-and-brick-schema-collaborating-to-provide-unified-data-semantic-modeling-solution), and to offer both a UI and underlying SDK with tutorials and reference documentation to be useful for different levels of expertise of users for maximum adoption.
Currently, ***BuildingMOTIF*** is planned to support [Brick](https://brickschema.org/) Schema, [Project Haystack](https://project-haystack.org/), and the upcoming [ASHRAE 223P](https://www.ashrae.org/about/news/2018/ashrae-s-bacnet-committee-project-haystack-and-brick-schema-collaborating-to-provide-unified-data-semantic-modeling-solution) standard, and to offer both UI and underlying SDK with tutorials and reference documentation to be useful for different levels of expertise of users for maximum adoption.

# Documentation

The documentation uses [Diataxis](https://diataxis.fr/) as a framework for its structure, which is organized into the following sections.
The documentation uses Diataxis[^1] as a framework for its structure, which is organized into the following sections.

[^1]: https://diataxis.fr/

## Reference

- [Developer Documentation](https://nrel.github.io/BuildingMOTIF/reference/developer_documentation.html)
- [Code Documentation](https://nrel.github.io/BuildingMOTIF/reference/apidoc/index.html)

## Tutorials

Expand All @@ -27,15 +33,10 @@ The documentation uses [Diataxis](https://diataxis.fr/) as a framework for its s
- [Model Correction](https://nrel.github.io/BuildingMOTIF/tutorials/model_correction.html)
- [Template Writing](https://nrel.github.io/BuildingMOTIF/tutorials/template_writing.html)

## How-to Guides
## Guides

🏗️ under construction

## Reference

- [Code Documentation](https://nrel.github.io/BuildingMOTIF/reference/apidoc/index.html)
- [Developer Documentation](https://nrel.github.io/BuildingMOTIF/reference/developer_documentation.html)

## Explanation

🏗️ under construction
🏗️ under construction
Loading