honeybee-core 1.61.27__tar.gz → 1.61.29__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.
Files changed (113) hide show
  1. {honeybee_core-1.61.27/honeybee_core.egg-info → honeybee_core-1.61.29}/PKG-INFO +3 -3
  2. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/honeybee/typing.py +25 -11
  3. {honeybee_core-1.61.27 → honeybee_core-1.61.29/honeybee_core.egg-info}/PKG-INFO +3 -3
  4. honeybee_core-1.61.29/honeybee_core.egg-info/requires.txt +5 -0
  5. honeybee_core-1.61.29/requirements.txt +3 -0
  6. honeybee_core-1.61.27/honeybee_core.egg-info/requires.txt +0 -5
  7. honeybee_core-1.61.27/requirements.txt +0 -3
  8. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/.github/workflows/ci.yaml +0 -0
  9. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/.github/workflows/dependency-release.yaml +0 -0
  10. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/.gitignore +0 -0
  11. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/.releaserc.json +0 -0
  12. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/CODE_OF_CONDUCT.md +0 -0
  13. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/CONTRIBUTING.md +0 -0
  14. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/LICENSE +0 -0
  15. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/MANIFEST.in +0 -0
  16. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/README.md +0 -0
  17. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/deploy.sh +0 -0
  18. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/dev-requirements.txt +0 -0
  19. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/docs/_build/.nojekyll +0 -0
  20. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/docs/_build/README.md +0 -0
  21. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/docs/_build/docs/README.md +0 -0
  22. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/docs/_static/custom.css +0 -0
  23. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/docs/_templates/layout.html +0 -0
  24. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/docs/cli/index.rst +0 -0
  25. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/docs/conf.py +0 -0
  26. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/docs/index.rst +0 -0
  27. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/honeybee/__init__.py +0 -0
  28. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/honeybee/__main__.py +0 -0
  29. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/honeybee/_base.py +0 -0
  30. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/honeybee/_basewithshade.py +0 -0
  31. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/honeybee/_lockable.py +0 -0
  32. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/honeybee/altnumber.py +0 -0
  33. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/honeybee/aperture.py +0 -0
  34. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/honeybee/boundarycondition.py +0 -0
  35. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/honeybee/checkdup.py +0 -0
  36. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/honeybee/cli/__init__.py +0 -0
  37. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/honeybee/cli/compare.py +0 -0
  38. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/honeybee/cli/create.py +0 -0
  39. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/honeybee/cli/edit.py +0 -0
  40. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/honeybee/cli/lib.py +0 -0
  41. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/honeybee/cli/setconfig.py +0 -0
  42. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/honeybee/cli/validate.py +0 -0
  43. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/honeybee/colorobj.py +0 -0
  44. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/honeybee/config.json +0 -0
  45. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/honeybee/config.py +0 -0
  46. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/honeybee/dictutil.py +0 -0
  47. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/honeybee/door.py +0 -0
  48. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/honeybee/extensionutil.py +0 -0
  49. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/honeybee/face.py +0 -0
  50. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/honeybee/facetype.py +0 -0
  51. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/honeybee/logutil.py +0 -0
  52. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/honeybee/model.py +0 -0
  53. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/honeybee/orientation.py +0 -0
  54. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/honeybee/properties.py +0 -0
  55. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/honeybee/room.py +0 -0
  56. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/honeybee/search.py +0 -0
  57. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/honeybee/shade.py +0 -0
  58. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/honeybee/shademesh.py +0 -0
  59. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/honeybee/units.py +0 -0
  60. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/honeybee/writer/__init__.py +0 -0
  61. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/honeybee/writer/aperture.py +0 -0
  62. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/honeybee/writer/door.py +0 -0
  63. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/honeybee/writer/face.py +0 -0
  64. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/honeybee/writer/model.py +0 -0
  65. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/honeybee/writer/room.py +0 -0
  66. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/honeybee/writer/shade.py +0 -0
  67. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/honeybee/writer/shademesh.py +0 -0
  68. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/honeybee_core.egg-info/SOURCES.txt +0 -0
  69. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/honeybee_core.egg-info/dependency_links.txt +0 -0
  70. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/honeybee_core.egg-info/entry_points.txt +0 -0
  71. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/honeybee_core.egg-info/top_level.txt +0 -0
  72. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/setup.cfg +0 -0
  73. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/setup.py +0 -0
  74. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/tests/__init__.py +0 -0
  75. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/tests/aperture_test.py +0 -0
  76. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/tests/boundary_condition_test.py +0 -0
  77. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/tests/cli_compare_test.py +0 -0
  78. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/tests/cli_create_test.py +0 -0
  79. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/tests/cli_edit_test.py +0 -0
  80. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/tests/cli_validate_test.py +0 -0
  81. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/tests/colorobj_test.py +0 -0
  82. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/tests/config_test.py +0 -0
  83. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/tests/dictutil_test.py +0 -0
  84. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/tests/door_test.py +0 -0
  85. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/tests/face_test.py +0 -0
  86. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/tests/facetype_test.py +0 -0
  87. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/tests/json/ShoeBox.json +0 -0
  88. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/tests/json/bad_geometry_model.hbjson +0 -0
  89. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/tests/json/colliding_room_volumes.hbjson +0 -0
  90. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/tests/json/compare_model_1.hbjson +0 -0
  91. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/tests/json/compare_model_2.hbjson +0 -0
  92. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/tests/json/complex_polyfaces.json +0 -0
  93. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/tests/json/minor_geometry/existing_model.hbjson +0 -0
  94. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/tests/json/minor_geometry/updated_model.hbjson +0 -0
  95. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/tests/json/mismatched_area_adj.hbjson +0 -0
  96. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/tests/json/model_with_adiabatic.hbjson +0 -0
  97. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/tests/json/model_with_holes.hbjson +0 -0
  98. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/tests/json/model_without_adjacency.hbjson +0 -0
  99. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/tests/json/nonascii_face.json +0 -0
  100. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/tests/json/polygons_for_gap_boundary.json +0 -0
  101. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/tests/json/room_for_window_offset.hbjson +0 -0
  102. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/tests/json/single_family_home.hbjson +0 -0
  103. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/tests/lockable_test.py +0 -0
  104. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/tests/model_test.py +0 -0
  105. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/tests/orientation_test.py +0 -0
  106. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/tests/room_test.py +0 -0
  107. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/tests/search_test.py +0 -0
  108. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/tests/shade_test.py +0 -0
  109. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/tests/shademesh_test.py +0 -0
  110. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/tests/stl/cube_ascii.stl +0 -0
  111. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/tests/stl/cube_binary.stl +0 -0
  112. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/tests/typing_test.py +0 -0
  113. {honeybee_core-1.61.27 → honeybee_core-1.61.29}/tests/units_test.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: honeybee-core
3
- Version: 1.61.27
3
+ Version: 1.61.29
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
@@ -14,8 +14,8 @@ Classifier: License :: OSI Approved :: GNU Affero General Public License v3
14
14
  Classifier: Operating System :: OS Independent
15
15
  Description-Content-Type: text/markdown
16
16
  License-File: LICENSE
17
- Requires-Dist: ladybug-core==0.44.18
18
- Requires-Dist: ladybug-geometry-polyskel==1.7.29
17
+ Requires-Dist: ladybug-core==0.44.19
18
+ Requires-Dist: ladybug-geometry-polyskel==1.7.30
19
19
  Requires-Dist: honeybee-schema==1.59.0; python_version >= "3.7"
20
20
 
21
21
  ![Honeybee](https://www.ladybug.tools/assets/img/honeybee.png)
@@ -3,6 +3,7 @@ import re
3
3
  import os
4
4
  import math
5
5
  import uuid
6
+ import hashlib
6
7
 
7
8
  try:
8
9
  INFPOS = math.inf
@@ -170,7 +171,8 @@ def clean_string(value, input_name=''):
170
171
  """Clean a string so that it is valid for both Radiance and EnergyPlus.
171
172
 
172
173
  This will strip out spaces and special characters and raise an error if the
173
- string is empty after stripping or has more than 100 characters.
174
+ string is has more than 100 characters. If the input has no valid characters
175
+ after stripping out illegal ones, a randomly-generated UUID will be returned.
174
176
  """
175
177
  try:
176
178
  value = value.replace(' ', '_') # spaces > underscores for readability
@@ -178,8 +180,10 @@ def clean_string(value, input_name=''):
178
180
  except TypeError:
179
181
  raise TypeError('Input {} must be a text string. Got {}: {}.'.format(
180
182
  input_name, type(value), value))
181
- assert len(val) > 0, 'Input {} "{}" contains no valid characters.'.format(
182
- input_name, value)
183
+ if len(val) == 0: # generate a unique but consistent ID from the input
184
+ sha256_hash = hashlib.sha256(value.encode('utf-8'))
185
+ hash_str = str(sha256_hash.hexdigest())
186
+ return hash_str[:8] if len(hash_str) > 8 else hash_str
183
187
  assert len(val) <= 100, 'Input {} "{}" must be less than 100 characters.'.format(
184
188
  input_name, value)
185
189
  return val
@@ -188,8 +192,9 @@ def clean_string(value, input_name=''):
188
192
  def clean_rad_string(value, input_name=''):
189
193
  """Clean a string for Radiance that can be used for rad material names.
190
194
 
191
- This includes stripping out illegal characters and white spaces as well as
192
- raising an error if no legal characters are found.
195
+ This includes stripping out illegal characters and white spaces. If the input
196
+ has no valid characters after stripping out illegal ones, a randomly-generated
197
+ UUID will be returned.
193
198
  """
194
199
  try:
195
200
  value = value.replace(' ', '_') # spaces > underscores for readability
@@ -197,8 +202,10 @@ def clean_rad_string(value, input_name=''):
197
202
  except TypeError:
198
203
  raise TypeError('Input {} must be a text string. Got {}: {}.'.format(
199
204
  input_name, type(value), value))
200
- assert len(val) > 0, 'Input {} "{}" contains no valid characters.'.format(
201
- input_name, value)
205
+ if len(val) == 0: # generate a unique but consistent ID from the input
206
+ sha256_hash = hashlib.sha256(value.encode('utf-8'))
207
+ hash_str = str(sha256_hash.hexdigest())
208
+ return hash_str[:8] if len(hash_str) > 8 else hash_str
202
209
  return val
203
210
 
204
211
 
@@ -206,8 +213,9 @@ def clean_ep_string(value, input_name=''):
206
213
  """Clean a string for EnergyPlus that can be used for energy material names.
207
214
 
208
215
  This includes stripping out all illegal characters, removing trailing spaces,
209
- and rasing an error if the name is not longer than 100 characters or no legal
210
- characters found.
216
+ and rasing an error if the name is not longer than 100 characters. If the input
217
+ has no valid characters after stripping out illegal ones, a randomly-generated
218
+ UUID will be returned.
211
219
  """
212
220
  try:
213
221
  val = ''.join(i for i in value if ord(i) < 128) # strip out non-ascii
@@ -216,8 +224,10 @@ def clean_ep_string(value, input_name=''):
216
224
  raise TypeError('Input {} must be a text string. Got {}: {}.'.format(
217
225
  input_name, type(value), value))
218
226
  val = val.strip()
219
- assert len(val) > 0, 'Input {} "{}" contains no valid characters.'.format(
220
- input_name, value)
227
+ if len(val) == 0: # generate a unique but consistent ID from the input
228
+ sha256_hash = hashlib.sha256(value.encode('utf-8'))
229
+ hash_str = str(sha256_hash.hexdigest())
230
+ return hash_str[:8] if len(hash_str) > 8 else hash_str
221
231
  assert len(val) <= 100, 'Input {} "{}" must be less than 100 characters.'.format(
222
232
  input_name, value)
223
233
  return val
@@ -449,6 +459,10 @@ def clean_doe2_string(value, max_length=24):
449
459
  raise TypeError('Input must be a text string. Got {}: {}.'.format(
450
460
  type(value), value))
451
461
  val = val.strip()
462
+ if len(val) == 0: # generate a unique but consistent ID from the input
463
+ sha256_hash = hashlib.sha256(value.encode('utf-8'))
464
+ hash_str = str(sha256_hash.hexdigest())
465
+ return hash_str[:8] if len(hash_str) > 8 else hash_str
452
466
  return readable_short_name(val, max_length)
453
467
 
454
468
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: honeybee-core
3
- Version: 1.61.27
3
+ Version: 1.61.29
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
@@ -14,8 +14,8 @@ Classifier: License :: OSI Approved :: GNU Affero General Public License v3
14
14
  Classifier: Operating System :: OS Independent
15
15
  Description-Content-Type: text/markdown
16
16
  License-File: LICENSE
17
- Requires-Dist: ladybug-core==0.44.18
18
- Requires-Dist: ladybug-geometry-polyskel==1.7.29
17
+ Requires-Dist: ladybug-core==0.44.19
18
+ Requires-Dist: ladybug-geometry-polyskel==1.7.30
19
19
  Requires-Dist: honeybee-schema==1.59.0; python_version >= "3.7"
20
20
 
21
21
  ![Honeybee](https://www.ladybug.tools/assets/img/honeybee.png)
@@ -0,0 +1,5 @@
1
+ ladybug-core==0.44.19
2
+ ladybug-geometry-polyskel==1.7.30
3
+
4
+ [:python_version >= "3.7"]
5
+ honeybee-schema==1.59.0
@@ -0,0 +1,3 @@
1
+ ladybug-core==0.44.19
2
+ ladybug-geometry-polyskel==1.7.30
3
+ honeybee-schema==1.59.0;python_version>='3.7'
@@ -1,5 +0,0 @@
1
- ladybug-core==0.44.18
2
- ladybug-geometry-polyskel==1.7.29
3
-
4
- [:python_version >= "3.7"]
5
- honeybee-schema==1.59.0
@@ -1,3 +0,0 @@
1
- ladybug-core==0.44.18
2
- ladybug-geometry-polyskel==1.7.29
3
- honeybee-schema==1.59.0;python_version>='3.7'
File without changes