honeybee-core 1.61.34__tar.gz → 1.62.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/.github/workflows/ci.yaml +1 -1
- {honeybee_core-1.61.34/honeybee_core.egg-info → honeybee_core-1.62.0}/PKG-INFO +19 -5
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/deploy.sh +1 -1
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/dev-requirements.txt +5 -4
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/honeybee/model.py +65 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/honeybee/properties.py +19 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0/honeybee_core.egg-info}/PKG-INFO +19 -5
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/honeybee_core.egg-info/SOURCES.txt +0 -1
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/honeybee_core.egg-info/requires.txt +1 -1
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/requirements.txt +1 -1
- honeybee_core-1.62.0/setup.cfg +4 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/setup.py +6 -2
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/tests/model_test.py +29 -0
- honeybee_core-1.61.34/setup.cfg +0 -13
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/.github/workflows/dependency-release.yaml +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/.gitignore +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/.releaserc.json +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/CODE_OF_CONDUCT.md +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/CONTRIBUTING.md +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/LICENSE +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/MANIFEST.in +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/README.md +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/docs/_build/.nojekyll +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/docs/_build/README.md +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/docs/_build/docs/README.md +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/docs/_static/custom.css +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/docs/_templates/layout.html +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/docs/cli/index.rst +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/docs/conf.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/docs/index.rst +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/honeybee/__init__.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/honeybee/__main__.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/honeybee/_base.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/honeybee/_basewithshade.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/honeybee/_lockable.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/honeybee/altnumber.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/honeybee/aperture.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/honeybee/boundarycondition.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/honeybee/checkdup.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/honeybee/cli/__init__.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/honeybee/cli/compare.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/honeybee/cli/create.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/honeybee/cli/edit.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/honeybee/cli/lib.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/honeybee/cli/setconfig.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/honeybee/cli/validate.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/honeybee/colorobj.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/honeybee/config.json +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/honeybee/config.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/honeybee/dictutil.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/honeybee/door.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/honeybee/extensionutil.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/honeybee/face.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/honeybee/facetype.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/honeybee/logutil.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/honeybee/orientation.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/honeybee/room.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/honeybee/search.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/honeybee/shade.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/honeybee/shademesh.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/honeybee/typing.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/honeybee/units.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/honeybee/writer/__init__.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/honeybee/writer/aperture.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/honeybee/writer/door.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/honeybee/writer/face.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/honeybee/writer/model.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/honeybee/writer/room.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/honeybee/writer/shade.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/honeybee/writer/shademesh.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/honeybee_core.egg-info/dependency_links.txt +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/honeybee_core.egg-info/entry_points.txt +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/honeybee_core.egg-info/top_level.txt +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/tests/__init__.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/tests/aperture_test.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/tests/boundary_condition_test.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/tests/cli_compare_test.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/tests/cli_create_test.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/tests/cli_edit_test.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/tests/cli_validate_test.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/tests/colorobj_test.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/tests/config_test.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/tests/dictutil_test.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/tests/door_test.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/tests/face_test.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/tests/facetype_test.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/tests/json/ShoeBox.json +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/tests/json/bad_geometry_model.hbjson +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/tests/json/colliding_room_volumes.hbjson +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/tests/json/compare_model_1.hbjson +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/tests/json/compare_model_2.hbjson +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/tests/json/complex_polyfaces.json +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/tests/json/minor_geometry/existing_model.hbjson +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/tests/json/minor_geometry/updated_model.hbjson +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/tests/json/mismatched_area_adj.hbjson +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/tests/json/model_with_adiabatic.hbjson +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/tests/json/model_with_holes.hbjson +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/tests/json/model_without_adjacency.hbjson +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/tests/json/nonascii_face.json +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/tests/json/polygons_for_gap_boundary.json +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/tests/json/room_for_window_offset.hbjson +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/tests/json/single_family_home.hbjson +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/tests/lockable_test.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/tests/orientation_test.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/tests/room_test.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/tests/search_test.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/tests/shade_test.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/tests/shademesh_test.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/tests/stl/cube_ascii.stl +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/tests/stl/cube_binary.stl +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/tests/typing_test.py +0 -0
- {honeybee_core-1.61.34 → honeybee_core-1.62.0}/tests/units_test.py +0 -0
|
@@ -55,7 +55,7 @@ jobs:
|
|
|
55
55
|
run: |
|
|
56
56
|
nextRelease="`npx semantic-release@^23.1.1 --dryRun | grep -oP 'Published release \K.*? ' || true`"
|
|
57
57
|
npx semantic-release@^23.1.1
|
|
58
|
-
echo "
|
|
58
|
+
echo "tag=$nextRelease" >> $GITHUB_OUTPUT
|
|
59
59
|
env:
|
|
60
60
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
61
61
|
PYPI_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
|
|
@@ -1,22 +1,36 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: honeybee-core
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.62.0
|
|
4
4
|
Summary: A library to create 3D building geometry for various types of environmental simulation.
|
|
5
5
|
Home-page: https://github.com/ladybug-tools/honeybee-core
|
|
6
6
|
Author: Ladybug Tools
|
|
7
7
|
Author-email: info@ladybug.tools
|
|
8
8
|
License: AGPL-3.0
|
|
9
9
|
Classifier: Programming Language :: Python :: 2.7
|
|
10
|
-
Classifier: Programming Language :: Python :: 3.6
|
|
11
10
|
Classifier: Programming Language :: Python :: 3.7
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
12
16
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
13
|
-
Classifier:
|
|
17
|
+
Classifier: Programming Language :: Python :: Implementation :: IronPython
|
|
14
18
|
Classifier: Operating System :: OS Independent
|
|
15
19
|
Description-Content-Type: text/markdown
|
|
16
20
|
License-File: LICENSE
|
|
17
21
|
Requires-Dist: ladybug-core==0.44.20
|
|
18
22
|
Requires-Dist: ladybug-geometry-polyskel==1.7.31
|
|
19
|
-
Requires-Dist: honeybee-schema==1.59.
|
|
23
|
+
Requires-Dist: honeybee-schema==1.59.1; python_version >= "3.7"
|
|
24
|
+
Dynamic: author
|
|
25
|
+
Dynamic: author-email
|
|
26
|
+
Dynamic: classifier
|
|
27
|
+
Dynamic: description
|
|
28
|
+
Dynamic: description-content-type
|
|
29
|
+
Dynamic: home-page
|
|
30
|
+
Dynamic: license
|
|
31
|
+
Dynamic: license-file
|
|
32
|
+
Dynamic: requires-dist
|
|
33
|
+
Dynamic: summary
|
|
20
34
|
|
|
21
35
|

|
|
22
36
|
|
|
@@ -4,10 +4,10 @@ sphinx-bootstrap-theme==0.8.1
|
|
|
4
4
|
sphinxcontrib-fulltoc==1.2.0
|
|
5
5
|
sphinxcontrib-websupport==2.0.0;python_version>='3.6'
|
|
6
6
|
sphinx-click==6.0.0;python_version>='3.6'
|
|
7
|
-
twine==
|
|
8
|
-
wheel==0.
|
|
9
|
-
setuptools==
|
|
10
|
-
|
|
7
|
+
twine==6.1.0;python_version>='3.6'
|
|
8
|
+
wheel==0.45.1;python_version>='3.6'
|
|
9
|
+
setuptools==80.9.0;python_version>='3.6'
|
|
10
|
+
build==1.3.0;python_version>='3.6'
|
|
11
11
|
pytest==4.6.9;python_version<'3.0'
|
|
12
12
|
Sphinx==1.8.5;python_version<'3.0'
|
|
13
13
|
sphinxcontrib-websupport==1.1.2;python_version<'3.0'
|
|
@@ -15,4 +15,5 @@ sphinx-click==4.4.0;python_version<'3.0'
|
|
|
15
15
|
twine==1.13.0;python_version<'3.0'
|
|
16
16
|
wheel==0.38.1;python_version<'3.0'
|
|
17
17
|
setuptools==44.1.0;python_version<'3.0'
|
|
18
|
+
build==0.1.0;python_version<'3.0'
|
|
18
19
|
importlib-metadata==2.0.0;python_version<'3.0'
|
|
@@ -116,6 +116,28 @@ class Model(_Base):
|
|
|
116
116
|
'_units', '_tolerance', '_angle_tolerance'
|
|
117
117
|
)
|
|
118
118
|
|
|
119
|
+
# dictionary mapping validation error codes to a corresponding check function
|
|
120
|
+
ERROR_MAP = {
|
|
121
|
+
'000001': 'check_duplicate_shade_identifiers',
|
|
122
|
+
'000002': 'check_duplicate_sub_face_identifiers',
|
|
123
|
+
'000003': 'check_duplicate_face_identifiers',
|
|
124
|
+
'000004': 'check_duplicate_room_identifiers',
|
|
125
|
+
'000101': 'check_planar',
|
|
126
|
+
'000102': 'check_self_intersecting',
|
|
127
|
+
'000103': 'check_degenerate_rooms',
|
|
128
|
+
'000104': 'check_sub_faces_valid',
|
|
129
|
+
'000105': 'check_sub_faces_overlapping',
|
|
130
|
+
'000106': 'check_rooms_solid',
|
|
131
|
+
'000107': 'check_degenerate_rooms',
|
|
132
|
+
'000108': 'check_room_volume_collisions',
|
|
133
|
+
'000109': 'check_upside_down_faces',
|
|
134
|
+
'000201': 'check_missing_adjacencies',
|
|
135
|
+
'000202': 'check_missing_adjacencies',
|
|
136
|
+
'000203': 'check_missing_adjacencies',
|
|
137
|
+
'000204': 'check_missing_adjacencies',
|
|
138
|
+
'000205': 'check_matching_adjacent_areas',
|
|
139
|
+
'000206': 'check_all_air_boundaries_adjacent'
|
|
140
|
+
}
|
|
119
141
|
UNITS = UNITS
|
|
120
142
|
UNITS_TOLERANCES = UNITS_TOLERANCES
|
|
121
143
|
|
|
@@ -2189,6 +2211,49 @@ class Model(_Base):
|
|
|
2189
2211
|
raise ValueError(full_msg)
|
|
2190
2212
|
return full_msg
|
|
2191
2213
|
|
|
2214
|
+
def check_for_error(self, error_code, raise_exception=True, detailed=False):
|
|
2215
|
+
"""Check that the Model is valid for a specific validation error code.
|
|
2216
|
+
|
|
2217
|
+
Note that, in order for error codes from a given honeybee extension to
|
|
2218
|
+
run correctly with this method, the specified honeybee extension related
|
|
2219
|
+
to the error code must be installed.
|
|
2220
|
+
|
|
2221
|
+
Args:
|
|
2222
|
+
error_code: Text for the error code for which the check will be performed.
|
|
2223
|
+
This can be the value under the "code" key in the dictionary of
|
|
2224
|
+
the validation error whenever the detailed option is used.
|
|
2225
|
+
raise_exception: Boolean to note whether a ValueError should be raised
|
|
2226
|
+
if any errors are found. If False, this method will simply
|
|
2227
|
+
return a text string with all errors that were found. (Default: True).
|
|
2228
|
+
detailed: Boolean for whether the returned object is a detailed list of
|
|
2229
|
+
dicts with error info or a string with a message. (Default: False).
|
|
2230
|
+
|
|
2231
|
+
Returns:
|
|
2232
|
+
A text string with all errors that were found or a list if detailed is True.
|
|
2233
|
+
This string (or list) will be empty if no errors were found.
|
|
2234
|
+
"""
|
|
2235
|
+
# set up defaults to ensure the method runs correctly
|
|
2236
|
+
detailed = False if raise_exception else detailed
|
|
2237
|
+
assert self.tolerance != 0, \
|
|
2238
|
+
'Model must have a non-zero tolerance in order to perform geometry checks.'
|
|
2239
|
+
assert self.angle_tolerance != 0, \
|
|
2240
|
+
'Model must have a non-zero angle_tolerance to perform geometry checks.'
|
|
2241
|
+
error_code = str(error_code) # catch the case someone passed an int
|
|
2242
|
+
|
|
2243
|
+
# get the check function to be run from the error code
|
|
2244
|
+
try: # fist see if the check function exists on the cor object
|
|
2245
|
+
check_func = self.ERROR_MAP[error_code]
|
|
2246
|
+
check_func = getattr(self, check_func)
|
|
2247
|
+
except KeyError: # next, see if the check function exists in an extension
|
|
2248
|
+
check_func = self._properties._check_func_from_code(error_code)
|
|
2249
|
+
if check_func is None:
|
|
2250
|
+
err_msg = 'No check function was found matching the error ' \
|
|
2251
|
+
'code "{}".'.format(error_code)
|
|
2252
|
+
raise ValueError(err_msg)
|
|
2253
|
+
|
|
2254
|
+
# run the check function
|
|
2255
|
+
return check_func(raise_exception=raise_exception, detailed=detailed)
|
|
2256
|
+
|
|
2192
2257
|
def check_all(self, raise_exception=True, detailed=False, all_ext_checks=False):
|
|
2193
2258
|
"""Check all of the aspects of the Model for validation errors.
|
|
2194
2259
|
|
|
@@ -486,6 +486,25 @@ class ModelProperties(_Properties):
|
|
|
486
486
|
raise Exception('Failed to check_all for {}: {}'.format(var, e))
|
|
487
487
|
return msgs
|
|
488
488
|
|
|
489
|
+
def _check_func_from_code(self, error_code):
|
|
490
|
+
"""Get a check function for a specific error code that exists in an extension.
|
|
491
|
+
|
|
492
|
+
Args:
|
|
493
|
+
error_code: Text for the error code for which the check will be performed.
|
|
494
|
+
This can be the value under the "code" key in the dictionary of
|
|
495
|
+
the validation error whenever the detailed option is used.
|
|
496
|
+
"""
|
|
497
|
+
for atr in self._extension_attributes:
|
|
498
|
+
var = getattr(self, atr)
|
|
499
|
+
if hasattr(var, 'ERROR_MAP'):
|
|
500
|
+
err_map = getattr(var, 'ERROR_MAP')
|
|
501
|
+
try:
|
|
502
|
+
check_func = err_map[error_code]
|
|
503
|
+
check_func = getattr(var, check_func)
|
|
504
|
+
return check_func
|
|
505
|
+
except KeyError: # not the correct extension for the code
|
|
506
|
+
pass
|
|
507
|
+
|
|
489
508
|
def __repr__(self):
|
|
490
509
|
"""Properties representation."""
|
|
491
510
|
return 'ModelProperties: {}'.format(self.host.display_name)
|
|
@@ -1,22 +1,36 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: honeybee-core
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.62.0
|
|
4
4
|
Summary: A library to create 3D building geometry for various types of environmental simulation.
|
|
5
5
|
Home-page: https://github.com/ladybug-tools/honeybee-core
|
|
6
6
|
Author: Ladybug Tools
|
|
7
7
|
Author-email: info@ladybug.tools
|
|
8
8
|
License: AGPL-3.0
|
|
9
9
|
Classifier: Programming Language :: Python :: 2.7
|
|
10
|
-
Classifier: Programming Language :: Python :: 3.6
|
|
11
10
|
Classifier: Programming Language :: Python :: 3.7
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
12
16
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
13
|
-
Classifier:
|
|
17
|
+
Classifier: Programming Language :: Python :: Implementation :: IronPython
|
|
14
18
|
Classifier: Operating System :: OS Independent
|
|
15
19
|
Description-Content-Type: text/markdown
|
|
16
20
|
License-File: LICENSE
|
|
17
21
|
Requires-Dist: ladybug-core==0.44.20
|
|
18
22
|
Requires-Dist: ladybug-geometry-polyskel==1.7.31
|
|
19
|
-
Requires-Dist: honeybee-schema==1.59.
|
|
23
|
+
Requires-Dist: honeybee-schema==1.59.1; python_version >= "3.7"
|
|
24
|
+
Dynamic: author
|
|
25
|
+
Dynamic: author-email
|
|
26
|
+
Dynamic: classifier
|
|
27
|
+
Dynamic: description
|
|
28
|
+
Dynamic: description-content-type
|
|
29
|
+
Dynamic: home-page
|
|
30
|
+
Dynamic: license
|
|
31
|
+
Dynamic: license-file
|
|
32
|
+
Dynamic: requires-dist
|
|
33
|
+
Dynamic: summary
|
|
20
34
|
|
|
21
35
|

|
|
22
36
|
|
|
@@ -24,10 +24,14 @@ setuptools.setup(
|
|
|
24
24
|
},
|
|
25
25
|
classifiers=[
|
|
26
26
|
"Programming Language :: Python :: 2.7",
|
|
27
|
-
"Programming Language :: Python :: 3.6",
|
|
28
27
|
"Programming Language :: Python :: 3.7",
|
|
28
|
+
"Programming Language :: Python :: 3.8",
|
|
29
|
+
"Programming Language :: Python :: 3.9",
|
|
30
|
+
"Programming Language :: Python :: 3.10",
|
|
31
|
+
"Programming Language :: Python :: 3.11",
|
|
32
|
+
"Programming Language :: Python :: 3.12",
|
|
29
33
|
"Programming Language :: Python :: Implementation :: CPython",
|
|
30
|
-
"
|
|
34
|
+
"Programming Language :: Python :: Implementation :: IronPython",
|
|
31
35
|
"Operating System :: OS Independent"
|
|
32
36
|
],
|
|
33
37
|
license="AGPL-3.0"
|
|
@@ -985,6 +985,35 @@ def test_check_self_intersecting():
|
|
|
985
985
|
model_2.check_self_intersecting(0.01, True)
|
|
986
986
|
|
|
987
987
|
|
|
988
|
+
def test_check_for_error():
|
|
989
|
+
"""Test the check_for_error method."""
|
|
990
|
+
pts_1 = [Point3D(0, 0, 0), Point3D(0, 10, 0), Point3D(10, 10, 0), Point3D(10, 0, 0)]
|
|
991
|
+
pts_2 = [Point3D(0, 0, 0), Point3D(0, 0, 3), Point3D(0, 10, 3), Point3D(0, 10, 0)]
|
|
992
|
+
pts_3 = [Point3D(0, 0, 0), Point3D(10, 0, 0), Point3D(10, 0, 3), Point3D(0, 0, 3)]
|
|
993
|
+
pts_4 = [Point3D(10, 10, 0), Point3D(0, 10, 0), Point3D(0, 10, 3), Point3D(10, 10, 3)]
|
|
994
|
+
pts_5 = [Point3D(10, 10, 0), Point3D(10, 0, 0), Point3D(10, 0, 3), Point3D(10, 10, 3)]
|
|
995
|
+
pts_6 = [Point3D(10, 0, 3), Point3D(10, 10, 3), Point3D(0, 10, 3), Point3D(0, 0, 3)]
|
|
996
|
+
pts_7 = [Point3D(10, 0, 3), Point3D(10, 10, 3.1), Point3D(0, 10, 3), Point3D(0, 0, 3)]
|
|
997
|
+
face_1 = Face('Face1', Face3D(pts_1))
|
|
998
|
+
face_2 = Face('Face2', Face3D(pts_2))
|
|
999
|
+
face_3 = Face('Face3', Face3D(pts_3))
|
|
1000
|
+
face_4 = Face('Face4', Face3D(pts_4))
|
|
1001
|
+
face_5 = Face('Face5', Face3D(pts_5))
|
|
1002
|
+
face_6 = Face('Face6', Face3D(pts_6))
|
|
1003
|
+
face_7 = Face('Face7', Face3D(pts_7))
|
|
1004
|
+
room_1 = Room('ZoneSHOE_BOX920980',
|
|
1005
|
+
[face_1, face_2, face_3, face_4, face_5, face_6], 0.01, 1)
|
|
1006
|
+
room_2 = Room('ZoneSHOE_BOX920980',
|
|
1007
|
+
[face_1, face_2, face_3, face_4, face_5, face_7], 0.01, 1)
|
|
1008
|
+
|
|
1009
|
+
model_1 = Model('SouthHouse', [room_1], tolerance=0.01)
|
|
1010
|
+
model_2 = Model('NorthHouse', [room_2], tolerance=0.01)
|
|
1011
|
+
assert model_1.check_for_error('000101', False) == ''
|
|
1012
|
+
assert model_2.check_for_error('000101', False) != ''
|
|
1013
|
+
with pytest.raises(ValueError):
|
|
1014
|
+
model_2.check_for_error('000101', True)
|
|
1015
|
+
|
|
1016
|
+
|
|
988
1017
|
def test_triangulated_apertures():
|
|
989
1018
|
"""Test the triangulated_apertures method."""
|
|
990
1019
|
room = Room.from_box('TinyHouseZone', 5, 10, 3)
|
honeybee_core-1.61.34/setup.cfg
DELETED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{honeybee_core-1.61.34 → honeybee_core-1.62.0}/tests/json/minor_geometry/existing_model.hbjson
RENAMED
|
File without changes
|
{honeybee_core-1.61.34 → honeybee_core-1.62.0}/tests/json/minor_geometry/updated_model.hbjson
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|