-
Notifications
You must be signed in to change notification settings - Fork 16
update develop #381
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
Open
MatthewSteen
wants to merge
1
commit into
develop
Choose a base branch
from
main
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
update develop #381
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* Fix CLI (#290) * Fix docker (#288) * Squish (#289) * Exclude python 3.12 from support (#293) * exclude python 3.12 from support * change pygit2 version * move cd.yaml to poetry * prevent werkzeug from breaching 3.0.0 * update checkout and setup-python. Add 3.11 to test matrix * Refactor Table Connection (#291) * unify getting objects by id and consolidate to delete language * fix tests * Documenting shape-to-template process and adding some QoL improvements (#278) * documenting shape-to-template process and adding some QoL improvements * fix test * skip 223P tests until gabe can fix them after next standard prerelease is done * remember to add shapes from the graph even when loading from directory * add exception to catch lack of sh:path * add test cases for recent code changes * dedicated test suite for library shape test * dedicated test suite for library shape test * Add Application Explorer (#292) * Add Application Explorer * Address comment * Fix test * improve performance by not requiring OPTIONAL clause in SPARQL queries --------- Co-authored-by: Gabe Fierro <[email protected]> * Generate SPARQL Queries from SHACL shapes (#273) * add method to generate sparql query from shacl shape * add some tests * fix typo in query generation * add sh:node, sh:or * fixup tests * handle or inside qualifiedvalue shape, complex property paths * add test file * update docs with image and guide on query generation * augment docstring with more features * add test case * add section on supported SHACL features * add algorithm documentation * support other target definitions * add more tests * Fixing template inlining (#298) * address ambiguous template naming in inline_dependencies * fill non-graphs, propagate the optional arg requirement * update tests * adjusting tests for inlining * Allow Library to find template definitions from dependent libraries (#307) * allow Library to find template definitions from dependent libraries * fixing tests to catch warnings, test dependency tracking * use non-deprecated warnings; make sure warnings are emitted when necessary * clarify when dependencies are infered for SHACL shapes -> templates * update dependencies * adding documentation on templates * placeholder for further template docs * clarify load order * update jsonschema, skip mypy checking on imports * fix API response and test to handle Brick * cleaning some code up * Add ability to use TopQuadrant SHACL implementation as engine (#308) * add shacl_validate/infer functions and use these as the entrypoint. Augment tests to check both shacl engines * fix interactions with shacl inference * tightening up the implementation and use of the shacl_* methods * support specifying shacl engine in the API * update tests; test both pyshacl and topquadrant * add brick-tq-shacl dep * add TODOs * Formatting * no more 3.8! * ignoring some imported packages without type annotations * more type annotations * add types, ignore type errors for imports * update mypy, fix some issues and ignore some others * fix union type annotation * update docker containers * 3.8.1 python for higher * add back python 3.8 * change 3.8 version * add test for finding reasons with a given severity * update brick-tq-shacl, fix type signature * remove debug serializations * bump shacl version * fixing skolemization for validation * move shacl engine config inside buildingmotif object * install rtd deps * jupyter-book needs to be installed pre-build * cleanup and update to default config comments * change from ubuntu:latest to python:3.9 for bacnet testing (#317) * Fix tutorials (#310) * updating validation tutorial * fixing some tutorials * updates * more components * fix imports and formatting and type annotations * fix formatting * fix merge * fix bacnet docker * fixing versions in docker bacnet setup * alphabetize prefixes * fixing model_correction file * Add new transitive_parameters method to accelerate library loading (#314) * Add new transitive_parameters method to accelerate library loading The prior implementation of check_template_dependency_relationship used inline_dependencies to check the parameters of template dependencies. inline_dependencies can be slow-ish because it copies the bodies of templates (these are graphs, so they inherit the performance characteristics of the underlying store). We can compute the parameters through the dependency tree automatically without copying the graphs, which is much faster. * use cached_property * remove cached_property * fix docker * fix bacnet docker container * bump workflow action versions * BMS naming convention parsing (#286) * adding label parsing initial implementation with tests * fix bug in many parsing * test first_true * add ingress and example * adding/testing maybe parser * add errors * propagate errors * update notebook * fix test import * capture errors in the token stream * fix notebook kernel * some changes * Make Parsers classes * Add Application Explorer (#292) * Add Application Explorer * Address comment * Fix test * improve performance by not requiring OPTIONAL clause in SPARQL queries --------- Co-authored-by: Gabe Fierro <[email protected]> * Generate SPARQL Queries from SHACL shapes (#273) * add method to generate sparql query from shacl shape * add some tests * fix typo in query generation * add sh:node, sh:or * fixup tests * handle or inside qualifiedvalue shape, complex property paths * add test file * update docs with image and guide on query generation * augment docstring with more features * add test case * add section on supported SHACL features * add algorithm documentation * support other target definitions * add more tests * Fixing template inlining (#298) * address ambiguous template naming in inline_dependencies * fill non-graphs, propagate the optional arg requirement * update tests * adjusting tests for inlining * Allow Library to find template definitions from dependent libraries (#307) * allow Library to find template definitions from dependent libraries * fixing tests to catch warnings, test dependency tracking * use non-deprecated warnings; make sure warnings are emitted when necessary * clarify when dependencies are infered for SHACL shapes -> templates * update dependencies * adding documentation on templates * placeholder for further template docs * clarify load order * update jsonschema, skip mypy checking on imports * fix API response and test to handle Brick * cleaning some code up * remove unused import, fix type signature * fix poetry lock * moving tokens/parser to different files * adding combinators module * add some negative cases * add missing combinators file * fix notebook --------- Co-authored-by: Hannah Eslinger <[email protected]> * New model builder (#301) * address ambiguous template naming in inline_dependencies * fill non-graphs, propagate the optional arg requirement * update tests * adjusting tests for inlining * update 223p templates * update 223 * add model builder impl * add QUDT * update templates * allow adding triples directly to the builder graph * allow Library to find template definitions from dependent libraries * fixing tests to catch warnings, test dependency tracking * use non-deprecated warnings; make sure warnings are emitted when necessary * clarify when dependencies are infered for SHACL shapes -> templates * update dependencies * adding documentation on templates * placeholder for further template docs * clarify load order * update jsonschema, skip mypy checking on imports * fix API response and test to handle Brick * updating 223p and templates * filtering validationcontext by severity * add shacl_validate/infer functions and use these as the entrypoint. Augment tests to check both shacl engines * fix interactions with shacl inference * tightening up the implementation and use of the shacl_* methods * support specifying shacl engine in the API * update tests; test both pyshacl and topquadrant * add brick-tq-shacl dep * add TODOs * Formatting * no more 3.8! * ignoring some imported packages without type annotations * more type annotations * add types, ignore type errors for imports * update mypy, fix some issues and ignore some others * fix union type annotation * update docker containers * 3.8.1 python for higher * add back python 3.8 * change 3.8 version * add test for finding reasons with a given severity * update brick-tq-shacl, fix type signature * remove debug serializations * bump shacl version * fixing skolemization for validation * update 223p, fix merge error * fix notebook * fix the merge * remove qudt from commit * remove more bad merge * fix more bad merge * remove more bad merge * add s223 namespace, parameter prop on template builder * add model builder draft * add call syntax to simplify evaluating templates * do not waste cycles re-binding namespaces on copied graphs * update model builder notebook * add java for topquadrant support * use topquadrant in 223 notebook * updating dockerfile; this started failing, possibly because of updated ubuntu * properly initialize graph superclass * Add graph hashing method to utils (#296) * Add graph hashing method to utils * change to approximate hash and use existing model for test * make test use a model graph to show positive functionality with DB stored graphs * use new rdflib triple canonicalizer to calculate graph hashes * update docstring * rename from approximate_graph_hash to graph_hash * Create generic serializer deserializer for parsers (#322) * Strip param inlining (#325) * add _strip_param function and tests to support inlining * fix test * Changes to ingresses to support external work (#312) * Allow TemplateHandler to handle edge cases in template eval Adds two flags: - require_optional - fill_unused These allow adjustment of how the template ingress handler deal with records that don't necessarily have all the parameters for the chosen template (fill_unused), and how the handler deal with optional parameters in the chosen template (require_optional) * more configuration on template ingress * put limit on xlsx * cleaning up parameter,s adding docstrings * Update template.py * Update xlsx.py * use pathlike * Fix autogeneration of templates (#329) * factor out the guarantee method and add unit tests * add function to utils * Update 223P to public advisory review version (#309) * updating 223p again * update 223p templates * update 223 * add QUDT * update templates * allow Library to find template definitions from dependent libraries * fixing tests to catch warnings, test dependency tracking * use non-deprecated warnings; make sure warnings are emitted when necessary * clarify when dependencies are infered for SHACL shapes -> templates * update dependencies * adding documentation on templates * placeholder for further template docs * clarify load order * update jsonschema, skip mypy checking on imports * fix API response and test to handle Brick * updating 223p and templates * filtering validationcontext by severity * add shacl_validate/infer functions and use these as the entrypoint. Augment tests to check both shacl engines * fix interactions with shacl inference * tightening up the implementation and use of the shacl_* methods * support specifying shacl engine in the API * update tests; test both pyshacl and topquadrant * add brick-tq-shacl dep * add TODOs * Formatting * no more 3.8! * ignoring some imported packages without type annotations * more type annotations * add types, ignore type errors for imports * update mypy, fix some issues and ignore some others * fix union type annotation * update docker containers * 3.8.1 python for higher * add back python 3.8 * change 3.8 version * add test for finding reasons with a given severity * update brick-tq-shacl, fix type signature * remove debug serializations * bump shacl version * fixing skolemization for validation * update 223p, fix merge error * fix notebook * fix more templates; test 223p again * move shacl engine config inside buildingmotif object * parameterize testing of templates for 223p * change some brick templates to make tests less noisy * fixing up templates * add brick integration tests * upadte QUDT * 223p fixup * add shacl engine and qudt to tests * use public review version of 223p * add qudt 2.1.37 release * better exception message * fixing system, sensor templates * fixing up 223 templates * fix plugging connection points in 223p * add the shape graph to the data graph for validation * clean up a little; skip some templates for pyshacl + 223p * fixing use of tmpdir -> tmp_path * try persistence test without path * use path again; try print statements * Add new transitive_parameters method to accelerate library loading The prior implementation of check_template_dependency_relationship used inline_dependencies to check the parameters of template dependencies. inline_dependencies can be slow-ish because it copies the bodies of templates (these are graphs, so they inherit the performance characteristics of the underlying store). We can compute the parameters through the dependency tree automatically without copying the graphs, which is much faster. * use cached_property * tryin-memory? * skip the test -- is this the only one that iss broken? * remove this file * add back path, remove other conftest * add back path, remove other conftest * remove test from in-progress code * remove cached_property * add back conf tests with optimized loading * fix docker * more test hacking * remove duplicate parameterization * remove bad merge * fix bacnet docker container * bump workflow action versions * use more recent Brick, try to write to local db file for persistence test * fix brick references, fix persistence test * support configuring the shacl engine when starting the buildingmotif API * make sure SHACL engine is passed around * handle dependencies for Brick validation in integration tests * bump deps * remove debug * add imports for brick * update brick 1.3 -> 1.4 * reduce tests temporarily * fixing flags to customize how much work gets done when a library is loaded * build templates off of imports closure * more recent 223p build * update again * newer 223p * temporarily pause bacnet integration * add custom option; this needs to be done at the "top level" of the pytest config * add bacnet back * fix ci configuration * fix dependencies on template * fixing some libraries * add _strip_param function and tests to support inlining * fix last class * fix test * add _strip_param function and tests to support inlining * fix test * revert db persistence test * change how we indicate buildingMOTIF's singleton metaclass * update chiller pointlist library * add new test subdirectory to fucus on library/template tests * remove debugs * monkeypatching to handle the singleton * more adjustments on the monkeypatching * more monkeypatching * add comments for explaining the library conftest * add library tests for github, add back notebook fixture * add IDs to notebook tests * factor out the guarantee method and add unit tests * add function to utils * update internal Brick * update notebooks to match buildingmotif API * fixing a couple notebooks * fix kernel * skip some 223p templates that cannot stand on their own * more templates to skip for 223p * increase notebook run time * remove unneeded flag * small changes to template compilation * fix chiller templates * add libraries to dockerfile so that pytest can enumerate the tests * add docstring for shacl_engine * cleaner bypass of the singleton for library tests --------- Co-authored-by: Matt Steen <[email protected]> * Create parser UI (#319) * Add parsers endpoint * Update node version * Create Parser UIs * Fix linting * Fix linting? * Add in Blockly * WIP * Fix * use inspect to help generate argument serialization * Clean up * Fix spilt --------- Co-authored-by: TShapinsky <[email protected]> * rename 5.16 * cleanup 5.16 prefixes * add 5.16 missing fault conditions 1 and 9-15 * cleanup 5.16 fault conditions 2-8 * typos * add 5.17 fault conditions * add 5.18 fault conditions * remove unused components prefix * add 5.22 fault conditions * update Operating State points * changing the model of outside air fraction * remove internal variables (constants) * Updating setuptool to use the newest version, bumping other deps too (#340) * Updating setuptool to use the newest version, bumping other deps too * update pyshacl, other deps * Update pyproject.toml * update poetry.lock * Update NREL 223P Templates (#343) * add new pipe and belimo energy valve templates, update property definitions for water and air mediums, remove QUDT files not needed for model validation * fix dependency * skip pipe template due to connections * add %OAmin * remove %OA * update test_model.py * fix typo in FCU prefix * Skip ipynb checkpoint directory (#330) * skip .ipynb_checkpoints when scanning for files * do the same filter in utils * add ipynb checkpoint test * force-add the ipynb checkpoitn file * Service clean up (#335) Co-authored-by: Gabe Fierro <[email protected]> * Add test and fix for #326 (#327) * add test and fix for #237 * add negative test * fix tests for windows (#318) * fix tests for windows * flush buffer in tests * Add explanation of point label parsing (#344) * add explanation of point label parsing * add example from notebook * add note on error handling * add links to a few classes * Update docs/explanations/point-label-parsing.md Co-authored-by: Matt Steen <[email protected]> * Update docs/explanations/point-label-parsing.md Co-authored-by: Matt Steen <[email protected]> * Update docs/explanations/point-label-parsing.md Co-authored-by: Matt Steen <[email protected]> * Update docs/explanations/point-label-parsing.md Co-authored-by: Matt Steen <[email protected]> * Update docs/explanations/point-label-parsing.md Co-authored-by: Matt Steen <[email protected]> --------- Co-authored-by: Matt Steen <[email protected]> * Fixing runtime issues in Jupyter notebook (#348) * move the target query out of the hot loop; we probably do not need to compute the cbd because we are already passing in the ontology graph * reduce the number of shapes we check in the notebook * fix composition of shacl shapes * break out integration tests to only run once * remove commented line * break out libraries into its own test * remove libraries from integration * try to run library tests on approval/merge * use new model * try more triggers * make only library tests run when event type is not push * remove style dependency for library tests --------- Co-authored-by: TShapinsky <[email protected]> * Update Brick to 1.4.1 (#346) * update Brick to 1.4.1 * Update Brick 1.3 -> 1.4 references * move the target query out of the hot loop; we probably do not need to compute the cbd because we are already passing in the ontology graph * reduce the number of shapes we check in the notebook * fix composition of shacl shapes * break out integration tests to only run once * remove commented line * break out libraries into its own test * remove libraries from integration * updating unit tests for brick 1.4 * adjust test to use brick 1.4 * using Brick 1.4 for more tests * fix brick uri * fix 4.6 shape for library tests * Add parser vis (#334) * update pyproject.toml for release * fix CD action to publish to pypi once per release (#356) * remove needs: deploy-docs from CD (#357) * Improve validation report output (#320) * improve report output * working on orshapes * add reason to orshape * add orshape diff to report * hashable * fixing result_uri? * remove print * use actual validation report * fix imports * formatting * fix tests to match new shacl interpretation output * fix tests to match new shacl interpretation output * add test case for property shapes * use pyshacl parsing of paths * formatting and imports * remove Literal import * clean up commented code * add test case for Or * format * qname for paths in validation reasons * handle prefixes whe nconverting to sparql paths * format code * fixing up shape_to_query and adding tests * dedup count code * move count formatting function to graphdiff and fix test * Add custom error classes (#360) * add custom library/template not found exceptions * modelnotfound * add errors! * fix API error detection * fix exception * use the correct error * reduce redundancy in error messages, alphabetize classes * reduce redundancy in error messages * reformatting * fix use of exception * Update buildingmotif/api/views/model.py --------- Co-authored-by: Matt Steen <[email protected]> * Add new model creation methods (#365) * add custom library/template not found exceptions * modelnotfound * add errors! * add endpoint to get template body * change pyshacl engine when validating * fix API error detection * fix exception * use the correct error * format * add new model creation methods * test: Add tests for Model.from_file and Model.from_graph methods * fix: Import OWL namespace to resolve undefined name error in tests * make sure description can be pulled from the file, add tests for new methods * fix tests, and do not emit triple for empty description * fix imports * reformat * normalize name to string * fix the test * fix data type on test * adding more tests for file extension, adding comments to clarify behavior * fix error * Add infer_templates method on shape collection (#361) * add custom library/template not found exceptions * modelnotfound * add errors! * add infer_templates method * add more docs * ad inline method for qualified value shape * fix API error detection * fix exception * use the correct error * Update buildingmotif/utils.py Co-authored-by: Matt Steen <[email protected]> * fix import of Library dataclass --------- Co-authored-by: Matt Steen <[email protected]> * Add automatic development releases to pypi (#368) * initial attempt to push development builds * add this branch to list allowed to cd * try python 3.11 * fix my mistake * add dependency install * run build push after tests successfully complete. Try querying test pypi to confirm that incrementing works. * cleanup and documentation * skip existing for test pypi * retarget to develop now that it appears to be working properly * move development deployment into cd.yaml * Web API changes to support demo features (#362) * add custom library/template not found exceptions * modelnotfound * add errors! * add endpoint to get template body * change pyshacl engine when validating * fix API error detection * fix exception * use the correct error * format * Update buildingmotif/api/views/template.py Co-authored-by: Matt Steen <[email protected]> * allow overriding of shacl_engine * reformat * use shacl engine override in view * fix lint * use None isntead of "default" for shacl_engine * fix formatting * fix errant import --------- Co-authored-by: Matt Steen <[email protected]> * Add CompiledModel class which can generate DataFrames and Tables (#359) * add CompiledModel class * format code * fix variable names, python deps * format * add compiled model in its own class, fix some deps * avoid subclassing Model * python 3.10 thru 3.13 * no python 3.13 yet * udpate poetry from merge * bump pygit2 * bumping versions, fixing poetry lock * bump flake * bump flake8 * poetry lock * changes for shacl path * remove snakeviz * fixing test against shapes * saving time on 223P validation * fixing notebooks * Improving tests * updating tests and fixing some subtle bugs * use renamed method * updating QUDT * update Brick * update imports for brick library tests * Cascade DELETEs in the database (#363) * add errors! * made these changes when building the demo; this removes dangling templates/etc when deleting libraries * Fix styling issues * Add tests for cascading delete behavior on models and libraries * formatting * adding comments to tests, add another test case * formatting * delete dependant templates and libraries * patch test by using overwrite=False to prevent library deletion cascade * Implement lazy resolution * begin refactor with new dependency design * add error_on_missing_dependency * Fix template library resolution for cases where library is being created from a ttl file * fix dict to Dict * default resolution is to current library --------- Co-authored-by: TShapinsky <[email protected]> * Optimizations to Improve testing speed (#373) * Use graph subtraction instead of canonicalization to improve performance * Make notebook tets use topquadrant * run unit and integration tests in parallel * organize tests in lists instead of sets for reproducability across threads * Make library tests multi threaded * make library tests run sparingly again * 0.4.0 docs (#378) * update Model Creation * fix Model Validation * fix Model Correction by updating manifest Brick version * fix Model Correction KeyError * update Brick-subset.ttl version to temporarily fix errors * update README * update config * add Outside_Damper to Brick-subset for Model Creation * update dev doc * delete extra line --------- Co-authored-by: Hannah Eslinger <[email protected]> Co-authored-by: Tobias Shapinsky <[email protected]> Co-authored-by: Gabe Fierro <[email protected]> Co-authored-by: daniel <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.